Como Martheen Cahya Paulo menciona nos comentários, essa questão já foi respondida, ainda que indiretamente.
Você pode usar uma ótima ferramenta, Space Tornado Renamer , conforme postado aqui: link ,
Eu estou olhando para renomear todos os diretórios em um determinado disco rígido (não C :), capitalizando a primeira letra de cada diretório (assim: \images
- > \Images
). Infelizmente não tenho experiência suficiente para escrever isso do zero.
Como Martheen Cahya Paulo menciona nos comentários, essa questão já foi respondida, ainda que indiretamente.
Você pode usar uma ótima ferramenta, Space Tornado Renamer , conforme postado aqui: link ,
O script em lote nativo a seguir renomeará todos os diretórios na unidade X :, ignorando os diretórios somente leitura, ocultos e do sistema e ignorando os pontos de nova análise. Converte os nomes em minúsculas e, em seguida, coloca em maiúscula o caractere inicial do nome do diretório (caracteres ingleses). Não manipula unicode em nomes.
@echo off
setlocal disableDelayedExpansion
set "drive=x"
set "tempFile=%temp%\initUpper%random%.txt"
dir /s /b /l /ad-l-h-s-r %drive%:\* >"%tempFile%"
for /f "usebackq eol=: delims=" %%F in ("%tempFile%") do (
set "old=%%F"
set "new=%%~nxF"
setlocal enableDelayedExpansion
for %%C in (
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
) do if /i "!new:~0,1!" equ "%%C" set "new=%%C!new:~1!"
ren "!old!" "!new!" 2>nul || echo unable to rename !old!
endlocal
)
del "%tempFile%"
O script usa um arquivo temporário por motivos de desempenho. Pode ser modificado para que o FOR / F leia a saída do comando DIR diretamente. Mas a saída pode ser muito grande, e FOR / F se torna muito lento se o conjunto de resultados do comando for muito grande.
Existem muitos ajustes que podem ser aplicados ao comando DIR. Por exemplo:
Remova a opção /ad
para renomear arquivos e diretórios: dir /s /b /l /a-l-h-s-r
Remova as opções /a-h-s
para incluir pastas ocultas e do sistema: dir /s /b /l /ad-l-r
Remova a opção /l
para preservar o caso de todos os caracteres iniciais: dir /s /b /ad-l-h-s-r