Группирование нескольких разделенных архивов RAR по папкам с помощью пакетного файла Windows - PullRequest
1 голос
/ 03 сентября 2011

Скажем, у меня есть папка "C: \ pokepoke" с архивами вроде:

trequetry.part01.rar
trequetry.part02.rar
trequetry.part03.rar

и

replokitro.part01.rar
replokitro.part02.rar
replokitro.part03.rar
replokitro.part04.rar

и так далее.Как мне сделать так, чтобы первый набор архивов заканчивался на C:\pokepoke\trequetry, а второй на C:\pokepoke\replokitro и так далее.Так что, в основном, фильтруйте X.partX.rar или что-то в этом направлении.

Я пытаюсь создать пакетное восстановление с помощью par2 для большого количества разделенных архивов, поэтому в дополнение к моему основному вопросу, ятакже хотел бы узнать, как выполнить for-each для всех вложенных папок в C:\pokepoke, чтобы я мог запустить следующий код для него после перемещения всех архивов в соответствующие папки:

FOR /R %%g IN (.) DO C:\WINDOWS\par2.exe c -r10 -s384000 "%%g\%%~ng.par2" "%%g\*"
del /q *.par2

1 Ответ

2 голосов
/ 05 сентября 2011

Чтобы помочь вам с первым вопросом, у меня работал следующий скрипт:

@ECHO OFF
SET "origloc=D:\path\to\archives"
FOR %%F IN ("%origloc%\*.part*.rar") DO CALL :process "%%F"
GOTO :EOF

:process
CALL :checkpath "%~dpn1"
MOVE %1 "%subfolder%" >NUL
GOTO :EOF

:checkpath
SET "subfolder=%~dpn1"
IF NOT EXIST "%subfolder%\" MKDIR "%subfolder%"
GOTO :EOF

Этот скрипт ищет *.part*.rar файлов в указанной папке.Он применяет модификатор ~dpn к каждому имени дважды, чтобы убрать имя «двойного расширения» .part<i>NN</i>.rar, а затем использует полученное имя в качестве имени подпапки.

При желании вы можете изменить первую команду SET, например:это:

SET "origloc=%~1"

, чтобы иметь возможность вызвать сценарий для произвольного пути, передавая путь в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...