Командная строка winrar: создать несколько файлов с паролем winrar из одного каталога

Я хочу автоматизировать сжатие нескольких файлов в одном каталоге, каждый с одним и тем же паролем, из командной строки или с помощью приложения.

файл1 -> файл1(с паролем).rar

файл2 -> файл2(с паролем).rar

файл3 -> файл2(с паролем).rar

Ответ в Упаковке (WinRAR) с паролем на группа файлов близка к тому, что я хочу, но слишком сложна для моих нужд.

Я знаю, что обратное можно легко сделать из командной строки.

Есть предположения? Спасибо.


person 11854761    schedule 07.03.2017    source источник
comment
Обратите внимание, что stackoverflow.com не является бесплатной службой написания скриптов/кода. Если вы сообщите нам, что уже пробовали (включая скрипты/код, которые вы уже используете) и где вы застряли, мы можем попытаться помочь с конкретными проблемами. Вам также следует прочитать Как задать хороший вопрос?.   -  person DavidPostill    schedule 09.03.2017


Ответы (1)


Вот пакетный код для этой простой задачи с дополнительным бонусом:
Рабочий каталог может быть передан пакетному файлу в качестве первого параметра.
Текущий каталог используется, если пакетный файл запускается без параметров.

@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "WorkingDirectory="
if "%~1" == "" goto ArchiveFiles

set "WorkingDirectory=%~1"
if "%WorkingDirectory:~-1%" == "\" (
    if exist "%WorkingDirectory%*"  pushd "%WorkingDirectory%" & goto ArchiveFiles
) else (
    if exist "%WorkingDirectory%\*" pushd "%WorkingDirectory%" & goto ArchiveFiles
)
echo Directory "%WorkingDirectory%" does not exist.
endlocal
goto :EOF

:ArchiveFiles
for /F "delims=" %%I in ('dir /A-D /B * 2^>nul') do (
    if /I not "%%~xI" == ".rar" (
        "%ProgramFiles%\WinRAR\Rar.exe" a -@ -cfg- -ep1 -idq -m5 -ma4 "-pPassword" -r- -s- -y -- "%%~nI.rar" "%%~fI"
    )
)
if not "%WorkingDirectory%" == "" popd
endlocal

Этот пакетный файл игнорирует файлы *.rar, уже существующие в каталоге.

Откройте в папке с программными файлами WinRAR текстовый файл Rar.txt для получения подробной информации об используемой команде a и используемых переключателях.

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

  • call /? ... объясняет %~1
  • dir /?
  • echo /?
  • endlocal /?
  • for /?
  • goto /?
  • if /?
  • popd /?
  • pushd /?
  • set /?
  • setlocal /?

Прочтите также статью Microsoft об использовании операторов перенаправления команд, в которой объясняется 2>nul В этом коде оператор перенаправления > должен быть экранирован символом вставки ^, чтобы он сначала интерпретировался как литеральный символ при анализе командной строки FOR и как оператор перенаправления при выполнении DIR с помощью ЗА.

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

person Mofi    schedule 14.03.2017