Как создать многотомный архив RAR и создать файлы восстановления par2 с пакетным файлом?

У меня есть пакет, который создает файлы восстановления par2 для архивов WinRAR.

Но к сожалению пакет создан только для архива xxx.part1.rar файлов par2...

Это строка, которую я использую для сжатия папок:

if "!FolderName:_UNPACK_=!" == "%%~nxF" (
    "C:\Program Files\WinRAR\Rar.exe" m -ep1 -hp[password] -pxxx -mt5 -m1 -v50M -r "C:\Users\xxx\Desktop\xxx\%_RndAlphaNum%" "%%~F"
)

Это строка, которую я использую для par2 архивных файлов RAR:

"C:\Program Files\xxx\phpar2.exe" c -r5 -b3000 "C:\Users\xx\Desktop\xxx\*.rar"

person BASF    schedule 05.07.2015    source источник


Ответы (1)


Я не могу воспроизвести ни одной проблемы.

Запуск phpar2.exe без каких-либо параметров приводит к печати справки в окне командной строки:

phpar2 version 1.3, Copyright (C) 2003 Peter Brian Clements.

phpar2 comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. See COPYING for details.


Usage:

  phpar2 c(reate) [options] <par2 file> [files] : Create PAR2 files
  phpar2 v(erify) [options] <par2 file> [files] : Verify files using PAR2 file
  phpar2 r(epair) [options] <par2 file> [files] : Repair files using PAR2 files

Options:

  -b<n>  : Set the Block-Count
  -s<n>  : Set the Block-Size (Don't use both -b and -s)
  -r<n>  : Level of Redundancy (%%)
  -c<n>  : Recovery block count (Don't use both -r and -c)
  -f<n>  : First Recovery-Block-Number
  -u     : Uniform recovery file sizes
  -l     : Limit size of recovery files (Don't use both -u and -l)
  -n<n>  : Number of recovery files (Don't use both -n and -l)
  -m<n>  : Memory (in MB) to use
  -v [-v]: Be more verbose
  -q [-q]: Be more quiet (-q -q gives silence)
  --     : Treat all remaining CommandLine as filenames

If you wish to create par2 files for a single source file, you may leave
out the name of the par2 file from the command line.

Рекомендуется, хотя и не обязательно, указывать имя файла для файла par2, когда данные восстановления должны быть созданы для нескольких файлов одновременно.

Например, с текущим каталогом C:\Temp и каталогом C:\Temp\Test, содержащим

Test.part01.rar
Test.part02.rar
Test.part03.rar
Test.part04.rar
Test.part05.rar
Test.part06.rar
Test.part07.rar
Test.part08.rar

каждый файл имеет размер 4 МБ, кроме последнего, который сейчас работает

phpar2.exe c -r5 -b3000 "C:\Temp\Test\*.rar"

вывод, напечатанный в окне консоли phpar2.exe,

Block size: 9784
Source file count: 7
Source block count: 3003
Redundancy: 5%
Recovery block count: 150
Recovery file count: 8

Opening: Test.part02.rar
Opening: Test.part03.rar
Opening: Test.part04.rar
Opening: Test.part05.rar
Opening: Test.part06.rar
Opening: Test.part07.rar
Opening: Test.part08.rar
Computing Reed Solomon matrix.
Constructing: done.
Wrote 1467600 bytes to disk
Writing recovery packets
Writing verification packets
Done

а каталог C:\Temp\Test содержит дополнительно

Test.part01.rar.par2
Test.part01.rar.vol000+01.par2
Test.part01.rar.vol001+02.par2
Test.part01.rar.vol003+04.par2
Test.part01.rar.vol007+08.par2
Test.part01.rar.vol015+16.par2
Test.part01.rar.vol031+32.par2
Test.part01.rar.vol063+64.par2
Test.part01.rar.vol127+23.par2

С помощью командной строки

phpar2.exe c -r5 -b3000 TestRecovery.par2 "C:\Temp\Test\*.rar"

файлы, созданные phpar2.exe в текущем каталоге C:\Temp,

TestRecovery.par2
TestRecovery.vol000+01.par2
TestRecovery.vol001+02.par2
TestRecovery.vol003+04.par2
TestRecovery.vol007+08.par2
TestRecovery.vol015+16.par2
TestRecovery.vol031+32.par2
TestRecovery.vol063+64.par2
TestRecovery.vol127+23.par2

Это правильный результат.


Но WinRAR поддерживает добавление данных восстановления непосредственно в каждый файл RAR или в отдельные файлы томов восстановления. Это можно сделать либо с помощью WinRAR с командой rr (добавление данных для восстановления) или rv (создание томов для восстановления), либо непосредственно с помощью опции создания архива -rr или -rv.

В вашем пакетном примере командная строка для создания 1 или нескольких отдельных томов восстановления с 5% данными восстановления для всех частей многотомного архива:

"C:\Program Files\WinRAR\Rar.exe" m -cfg- -ep1 -hpPassword -inul -mt5 -m1 -r -rv5p -v50M "%USERPROFILE%\Desktop\xxx\%_RndAlphaNum%" "%%~F"

Примечание: Rar.exe автоматически вычисляет, сколько томов восстановления с максимальным размером файла 50 миллионов байт (50 МБ требуют написания в нижнем регистре, т. е. -v50m) требуется для всех частей многотомного архива.

Подробнее о восстановлении данных читайте в текстовом файле Rar.txt в папке программных файлов WinRAR, который является руководством для консольной версии Rar.exe.

Команды и переключатели для GUI версии WinRAR.exe для использования из командной строки (пакетный файл) включены в справку WinRAR, см. после открытия Справка - Разделы справки на вкладке справки Содержит элементы в режиме командной строки.

Создавать ли Rar.exe или phpar2.exe один файл восстановления для каждой части многотомного архива. Созданные файлы восстановления содержат данные восстановления для всех частей многотомного архива.

person Mofi    schedule 02.08.2015