Como renomear arquivos divididos 7-Zip como name_00N.zip em vez de name.zip.00N

0

No Windows, quando eu crio arquivos .zip split com volumes menores que 20MB com um comando como:

7z a name.zip files\* -v20M

Eu recebo um ou mais arquivos chamados name.zip.001 , name.zip.002 , etc.

Eu preciso renomear todos os name.zip.00N para um esquema de nomenclatura diferente, que é name_index.zip em vez de name.zip.index:

name_001.zip
name_002.zip
name_003.zip

Existe uma maneira fácil de fazer isso em um arquivo .bat ?

    
por Mache 26.08.2014 / 12:57

1 resposta

1

Aqui está um script em lote simples que executa a tarefa que você solicitou:

@echo off
setlocal EnableDelayedExpansion

for /f "delims=. tokens=1-3" %%l in ('dir /a-d /b') do (
set FILENAME=%%l
set EXTENSION=%%m
set PARTNUMBER=%%n

    if defined PARTNUMBER (
        ren ".\!FILENAME!.!EXTENSION!.!PARTNUMBER!" "!FILENAME!_!PARTNUMBER!.!EXTENSION!
    ) else (
        echo The task cannot be accomplished on file !FILENAME!.!EXTENSION!.
    )

)
pause

Esse script executa um ciclo for que decompõe o nome de cada arquivo colocado na pasta em que o arquivo em lote é iniciado; Ele usa o caractere . como um delimitador para os vários tokens. Então, se o nome do arquivo incluir três tokens diferentes, ele será renomeado como no exemplo da sua pergunta; caso contrário, o arquivo não será renomeado. Essa condição permite excluir os arquivos comuns com um nome simples e uma extensão desta operação. Infelizmente, não tenho certeza se o 7-Zip poderá descompactar o arquivo original após essa renomeação.

    
por 27.08.2014 / 03:13