Anexar nomes de arquivos no shell

Anexar nomes de arquivos no shell

Tenho 100 arquivos .png em uma pasta, como test.png, example.png, etc.

Quero anexá-los New_para que sejam renomeados New_test.pngcomo New_example.pngetc.

Como posso fazer isso com casca.

Responder1

Você não especificou um sistema operacional. Esta resposta pressupõe o Windows.

Meu primeiro pensamento foi um comando simples como

for %f in (*.png) do rename "%f" "New_%f"

Mas um arquivo chamado a.pngfoi primeiro renomeado para New_a.pnge movido para baixo na ordem alfabética :-( O loop renomeou este arquivo comosegundohora para New_New_a.png.

Portanto, isso deve ser feito em duas etapas:

dir /b *.png > png.txt
for /F %l in (png.txt) do rename "%l" "New_%l"
del png.txt

A primeira linha cria um arquivo de texto contendo os nomes de todos os arquivos png no diretório atual. A segunda linha analisa cada linha do arquivo e renomeia os png.

informação relacionada