lowercase 不像 uppercase 擁有美麗巧合, 無法與 find 或其它指令擦出火花, 只能土法練鋼。 DOS 基本指令中皆未含字碼轉換能力, 所以最快的方法就是查表法。
:LOWERCASE
set r=
set "i=%~1"
set tab=AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
:LRC1
if "%i%" == "" exit /b
set c=%i:~0,1%
if "%c%" GEQ "A" if "%c%" LEQ "Z" call set c=%%tab:*%c%=%%& set c=%c:~0,1%
set r=%r%%c%
set i=%i:~1%
goto :LRC1
r = returned uppercase stringset r=
set "i=%~1"
set tab=AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
:LRC1
if "%i%" == "" exit /b
set c=%i:~0,1%
if "%c%" GEQ "A" if "%c%" LEQ "Z" call set c=%%tab:*%c%=%%& set c=%c:~0,1%
set r=%r%%c%
set i=%i:~1%
goto :LRC1