Batch anexado ao final de um nome de arquivo antes da extensão com o comando ren

1

Gostaria de renomear todos os arquivos em uma pasta, com extensões diferentes, para que o nome do arquivo terminasse com " _1 ", preservando as extensões existentes.

Eu tentei ren * *_1* , que acabou de substituir a última instância de um sublinhado já existente no mesmo como _1 . Eu também tentei ren * *_1.* , mas isso adicionou _1 ao final dos nomes dos arquivos.

Estou usando a linha de comando (digitando cmd na barra de pesquisa de pastas) no Windows 10.

    
por Natalie 15.08.2018 / 00:16

1 resposta

1

Você pode usar um loop para iterar cada arquivo em um diretório e especificar o substituições variáveis individualmente para obter o nome do arquivo menos a extensão e a extensão do arquivo mais o ponto anterior. Você pode usá-los e adicionar a string _1 para obter a saída esperada para cada arquivo iterado.

Essentially this. . .

  • Iterates all *.* files in a specific directory (not recursively)
  • Uses variable substitutions for getting the file name without the extension and the file extension separately/individually
  • Concatenates the file name with no extension to the _1 string to the original "." extension and passes that per file as the second argument to the ren command.

Linha de comando

for %a in ("C:\path\*.*") do ren "%~a" "%~Na_1%~Xa"

Script em lote

SET "Src=C:\path"
SET "Str=_1"
for %%a in ("%Src%\*.*") do ren "%%~a" "%%~Na%Str%%%~Xa"

Mais recursos

PARA

  • Substituições variáveis (FOR /?)

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • Ren

  • Substituições variáveis
por 15.08.2018 / 00:29