Arquivos em lote para remover o sinal de menos dos nomes de arquivos

Arquivos em lote para remover o sinal de menos dos nomes de arquivos

Estou tentando limpar alguns nomes de arquivos em uma pasta específica e estou me perguntando como criaria um arquivo em lote para remover um sinal de menos do início de cada nome de arquivo.

Eu tenho vários arquivos com o padrão -FileName.pdf e gostaria de remover o sinal de menos da frente, então tenho apenas FileName.pdf.

Até agora, tenho o seguinte comando:

dir /B > Batch.txt
for /f "tokens=1,2" %i in (Batch.txt) DO ren "%i %j" %l

Existe algo mais simples que eu possa usar?

desde já, obrigado

Responder1

Eu gostaria de remover o sinal de menos da frente

Use o seguinte arquivo em lote:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b -*.pdf') do (
  set _fname=%%i
  echo ren %%i !_fname:~1!
  )

Notas:

  • Isto removerá o primeiro caractere de todos os nomes de arquivos que correspondam à expressão -*.pdf.
  • Substitua echo renpor renquando tiver certeza de que o arquivo em lote será renomeado corretamente.

Leitura adicional

  • Um índice AZ da linha de comando do Windows CMD- Uma excelente referência para todas as coisas relacionadas à linha cmd do Windows.
  • diretório- Exibir uma lista de arquivos e subpastas.
  • habilitadodelayedexpansion- A expansão atrasada fará com que as variáveis ​​sejam expandidas no tempo de execução, e não no tempo de análise.
  • para /f- Comando de loop em relação aos resultados de outro comando.
  • definir- Exibir, definir ou remover variáveis ​​de ambiente CMD. As alterações feitas com SET permanecerão apenas durante a sessão CMD atual.
  • definirlocal- Defina opções para controlar a visibilidade das variáveis ​​de ambiente em um arquivo em lote.

Responder2

eu usoComandante XE grátisque possui um recurso útil de renomeação múltipla que permite visualizar os resultados antes de renomear vários arquivos usando um padrão.

informação relacionada