С http://windowsitpro.com/articles/index.cfm?articleid=81612 :
Используя только стандартные команды, я написал сценарии LwrCase.bat и LwrCase_Folder.bat, чтобы переименовать имя файла в нижний регистр или переименовать все имена файлов в папке в нижний регистр.
Чтобы переименовать имя файла в нижний регистр, используйте:
[call] LwrCase FullyQualifiedFileName
Где FullyQualifiedFileName - полное имя файла для переименования.
Чтобы переименовать все имена файлов в каталоге, используйте:
[call] LwrCase_Folder FullyQualifiedDirectoryName [/S]
где FullyQualifiedDirectoryName - полный путь к папке, а / S - необязательный параметр, который также будет переименовывать имена файлов во всех подпапках.
ПРИМЕЧАНИЕ. LwrCase.bat использует ключ / L команды DIR, который возвращает имена в нижнем регистре.
LwrCase.bat содержит:
@echo off if {%1}=={} @echo Syntax: LwrCase FullyQualifiedFileName&goto :EOF if not exist %1 @echo LwrCase - %1 NOT found.&goto :EOF setlocal for /f "Tokens=*" %%a in ('@echo %~a1') do ( set file=%%a ) if /i "%file:~0,1%" EQU "d" @echo LwrCase - %1 is NOT a file.&endlocal&goto :EOF for /f "Tokens=*" %%f in ('dir %1 /L /b /a /a-d') do ( Rename %1 "%%f" ) endlocal
LwrCase_Folder.bat содержит:
@echo off if {%1}=={} @echo Syntax: LwrCase_Folder FullyQualifiedDirectoryName&goto :EOF if not exist %1 @echo LwrCase_Folder - %1 NOT found.&goto :EOF setlocal for /f "Tokens=*" %%a in ('@echo %~a1') do ( set folder=%%a ) if /i "%folder:~0,1%" NEQ "d" @echo LwrCase_Folder - %1 is NOT a folder.&endlocal&goto :EOF pushd %1 set sw=/B /A /A-D if /i {%2}=={/S} set sw=%sw% %2 for /f "Tokens=*" %%f in ('dir %sw%') do ( call LwrCase "%%f" ) popd endlocal