Как переименовать 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 файл?

Ответы:


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 сможет распаковать исходный файл после этого переименования.


Спасибо, действительно, 7zip (или другая программа) не сможет разархивировать полученные архивы, но это выходит за рамки.
Mache
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.