Como renomeio vários arquivos removendo um nome específico, espaço em branco e adicionando uma string única?

2

Tenho n número de arquivos que desejo renomear removendo um nome específico, espaço em branco e desejo adicionar uma string única com o novo nome:

Por exemplo,

"MPKL 100055.jpg" 
"MPKL 200452.jpg" 
"MPKL 500002_thumb.jpg"

Eu quero renomear os arquivos acima para:

"00100055.jpg"
"00200452.jpg"
"00500002_thumb.jpg"

Dois zeros precisam aparecer na frente do número existente.

    
por Ezhilarasan 01.09.2016 / 08:39

3 respostas

2

No exemplo abaixo, usei um loop FOR / F para definir delimitadores e tokens que analisam as partes do nome do arquivo e usá-las para definir variáveis para uso posterior com o comando REN . Eu também usei o SetLocal EnableDelayedExpansion para lidar com a expansão das variáveis definidas no loop de acordo com o uso correto (não analisado em tempo de execução) com o comando renomear por iteração dentro do loop.

@ECHO ON

SETLOCAL ENABLEDELAYEDEXPANSION
SET SourceDir=C:\Users\User\Desktop\Tester

FOR /F "TOKENS=1-3 DELIMS=. " %%F IN ('DIR /B /A-D "%SourceDir%\*.jpg"') DO (
    SET "part1=%%~F" 
    SET "part2=%%~G" 
    SET "part3=%%~H"
    REN "%SourceDir%\!part1! !part2!.!part3!" "00!part2!.!part3!"
)
GOTO EOF

Mais recursos

por 01.09.2016 / 10:22
1

Eu renomeio muito os arquivos, e acho muito conveniente usar o Bulk Rename Utility . É de graça. Você pode renomear arquivos e pastas em pastas e / ou subpastas de várias maneiras, incluindo a alteração das extensões.

    
por 01.09.2016 / 12:24
1
@echo off

Setlocal enabledelayedexpansion

Set "Pattern=MPKL" 

Set "Replace=00"

For %%# in ("FOLDER_PATH/*.jpg") Do (

    Set "File=%%~nx#"

    Ren "%%#" "!folder!!file!" "!file: =!!File:%Pattern%=%Replace%!"


)

Pause&Exit
    
por 01.09.2016 / 08:47