Script em lote para Renomear arquivos em massa - Retire os parênteses e todos os caracteres entre

2

Desejo renomear um grupo de arquivos em uma pasta específica de forma que tudo entre e incluindo os parênteses seja apagado.

Por exemplo, um arquivo com o nome de:

"78 Tax Tips for Canadians for Dummies (ISBN - 0470676582)"

Desejo mudar o nome para:

"78 Tax Tips for Canadians for Dummies"

Eu preciso fazer isso para todo o arquivo de arquivos em uma pasta específica para todos e quaisquer arquivos que sigam este mesmo padrão para os caracteres de nome de arquivo:

Dummies (ISBN - .........)

Eu tentei seguir e usar a lógica do script em lote nesta mas eu não consegui fazer isso funcionar o número depois que a parte ISBN - ########## continua mudando com a maneira que eu fiz isso incorretamente.

    
por Saransh Reu 01.02.2016 / 15:06

1 resposta

1

Batch file rename, strip off parenthesis and all characters between, but keep extension

Salve toda a lógica do exemplo abaixo em um arquivo de texto, nomeie-o como something.cmd e simplesmente execute-o. . .

Notas do script

  • Onde SET RenDir=C:\Path é C:\Path , você precisará colocar o total caminho onde esses arquivos que você deseja renomear existem.

  • A suposição com essa lógica de script é SOMENTE haverá arquivos em o RenDir com parêntese () que precisará ser removido o padrão de tipo (ISBN - .........) e nenhuma outra parte de qualquer esses nomes de arquivo conterão qualquer parêntese () .

Lógica de script em lote de exemplo

@ECHO ON

SET RenDir=C:\Path

FOR /F "DELIMS=() TOKENS=1,3" %%F IN ('DIR /B /A-D "%RenDir%\*.*"') DO (
    CALL :RenameFiles "%%~F" "%%~G"
)
GOTO EOF

:RenameFiles
SET fname=%~1
SET Ext=%~2
REN "%RenDir%\%fname%*%ext%" "%fname%%ext%"
GOTO EOF
    
por 01.02.2016 / 15:59