De link :
Usando apenas comandos padrão, eu tenho scripts LwrCase.bat e LwrCase_Folder.bat, para renomear um nome de arquivo para minúsculas ou renomear todos os nomes de arquivos em uma pasta para minúsculas.
Para renomear um nome de arquivo para minúscula, use:
[call] LwrCase FullyQualifiedFileName
Onde FullyQualifiedFileName é o nome completo do arquivo a ser renomeado.
Para renomear todos os nomes de arquivos em um diretório, use:
[call] LwrCase_Folder FullyQualifiedDirectoryName [/S]
onde FullyQualifiedDirectoryName é o caminho da pasta totalmente qualificada e / S é um parâmetro opcional que também renomeia nomes de arquivos em todas as subpastas.
Observação: LwrCase.bat usa a opção / L do comando DIR, que retorna nomes de minúsculas.
LwrCase.bat contém:
@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 contém:
@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