Как переименовать 7-Zip сплит файлы в name_00N.zip вместо name.zip.00N

0

В Windows, когда я создаю .zip разбить файлы объемом менее 20 МБ с помощью команды, подобной следующей:

7z a name.zip files\* -v20M

Я получаю один или несколько файлов с именем name.zip.001, name.zip.002, так далее.

Мне нужно переименовать все name.zip.00N к другой схеме именования, которая name_index.zip вместо name.zip.index:

name_001.zip
name_002.zip
name_003.zip

Есть ли простой способ сделать это в .bat файл?

Mache
источник

Ответы:

1

Вот простые пакетные сценарии, которые выполняют запрошенную вами задачу:

@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

Этот скрипт выполняет for цикл, который разлагает имя каждого файла, помещенного в папку, в которой запускается пакетный файл; он использует . символ как разделитель для различных жетонов. Затем, если имя файла содержит три разных токена, оно переименовывается, как в примере с вашим вопросом; в противном случае файл не переименовывается. Это условие позволяет исключить из этой операции общие файлы с простым именем и расширением. К сожалению, я не уверен, что 7-Zip сможет распаковать исходный файл после этого переименования.

rudicangiotti
источник
Спасибо, действительно, 7zip (или другая программа) не сможет разархивировать полученные архивы, но это выходит за рамки.
Mache