Como adicionar um prefixo a todos os arquivos e pastas de uma pasta? (janelas)

9

O seguinte comando apenas altera o nome dos arquivos, mas não as pastas.

for %a in (*) do ren "%a" "00_%a"

    
por MatMis 18.01.2016 / 18:15

2 respostas

10

O seguinte comando apenas altera o nome dos arquivos, mas não as pastas.

for %a in (*) do ren "%a" "00_%a"

Notas:

  • Usar for como acima não é recomendado.
  • Existe a possibilidade de os arquivos serem renomeados várias vezes.
  • Veja abaixo o motivo pelo qual.

Use o seguinte em um shell cmd :

for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"

Em um arquivo de lote (substitua % por %% ):

for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"

Nota:

It is critical that you use FOR /F and not the simple FOR.

The FOR /F gathers the entire result of the DIR command before it begins iterating, whereas the simple FOR begins iterating after the internal buffer is full, which adds a risk of renaming the same file multiple times.

como recomendado pelo dbenham em sua resposta para adicione" texto "ao final de vários nomes de arquivos :

Leitura Adicional

por 18.01.2016 / 18:35
0

Para executar este loop For em pastas (diretórios) em vez de arquivos, simplesmente inclua a opção /D .

for /D %a in (*) do ren "%a" "00_%a"

De for /? :

FOR /D %variable IN (set) DO command [command-parameters]

If set contains wildcards, then specifies to match against directory
names instead of file names.
    
por 18.01.2016 / 18:34