Lote capitalizar todas as pastas, subpastas e arquivos dentro

1

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.

    
por Bram Vanroy 24.12.2012 / 14:36

2 respostas

0

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 ,

    
por 24.12.2012 / 16:14
4

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

    
por 24.12.2012 / 17:48

Tags