Просто сжать 1 папку в пакетном режиме с помощью командной строки WinRAR?
Использование командной строки WinRAR (C:\Program Files\WinRAR\rar.exe)
все, что я пытаюсь сделать, это сжать одну папку (C:\Users\%username%\desktop\someFolder)
и, возможно, изменить имя созданного файла.zip. Я пробовал просто "rar.exe а"C:\Users\%username%\desktop\someFile
"и это работает, но он сжимает другую папку (не ту, которую я положил).
Что я делаю неправильно?
Можете ли вы также дать объяснение (и, возможно, скажите мне, что такое рекурсия, потому что я не знаком с ней)?
Спасибо
1 ответ
Используйте либо
"%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idq -r -y "Name of RAR file with path" "%UserProfile%\Desktop\someFolder"
или же
"%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idq -r -y "Name of RAR file with path" "%UserProfile%\Desktop\someFolder\"
создать архив RAR с указанным именем после команды a
(добавить в архив) и переключатели
-idq
... включить тихий режим для отображения только сообщений об ошибках,-ep1
... исключить базовый каталог из указанных имен файлов / папок,-r
... рекурсивно архивировать / сжимать все файлы и подкаталоги,-y
... примите да на все запросы.
Папка someFolder
включен в архив с первой командной строкой без обратной косой черты в конце.
Папка someFolder
НЕ включается в архив, только файлы и подкаталоги этой папки, со второй командной строкой с обратной косой чертой в конце.
Другими словами вариант -ep1
приводит к пропуску всего от пути до последнего обратного слеша в указанном имени файла или папки при добавлении файла или папки в архив, что объясняет разницу при добавлении папки без или с обратным слэшем в конце, указанном в командной строке.
Рекурсия означает добавление не только файлов в указанной папке, но также всех подпапок и всех файлов во всех подпапках.
Таким образом, RAR должен искать сначала в указанной папке подпапку. Если найдено, перейдите в эту подпапку и снова найдите подпапку. Если он найден, перейдите в эту подпапку и найдите подпапку. Если никто не найден, добавьте файлы в этой подпапке в архив или просто имя папки, если подпапка пуста. Затем вернитесь в родительскую папку и продолжите поиск следующей подпапки. Если ничего не найдено, добавьте файлы этой подпапки. Затем вернитесь в родительскую папку и продолжите поиск подпапки и так далее.
Как вы можете прочитать, одна и та же процедура выполняется снова и снова для каждой ветви всего дерева папок, пока все подпапки не будут обработаны. Это делается с помощью рекурсии. Подпрограмма поиска подпапок вызывает себя каждый раз, когда подпапка найдена.
НОТА:
Консольная версия Rar.exe
поддерживает только создание / извлечение архивов RAR. Он не поддерживает ZIP архивы. Это четко написано в текстовом файле Rar.txt
вверху - руководство по консольной версии WinRAR. Надо было бы использовать WinRAR.exe
вместо RAR.exe
создавать ZIP архивы.
Пример 1:
"%ProgramFiles%\WinRAR\WinRAR.exe" a -afzip -ep1 -ibck -r -y "Name of ZIP file with path" "%UserProfile%\Desktop\someFolder"
Пример 2:
"%ProgramFiles%\WinRAR\WinRAR.exe" a -afzip -ep1 -ibck -r -y "Name of ZIP file with path" "%UserProfile%\Desktop\someFolder\"
Версия с графическим интерфейсом WinRAR.exe
имеет много команд и переключателей, идентичных консольной версии Rar.exe
, но есть различия, как показано здесь с -afzip
поддерживается только WinRAR.exe
а также -ibck
вместо -idq
запускать WinRAR в фоновом режиме, что означает сворачивание в системный трей, а не на переднем плане с видимым окном прогресса.
За помощь в создании WinRAR.exe
Запустите командную строку WinRAR, щелкните в последнем главном меню " Справка" в первом пункте меню "Разделы справки", выберите вкладку " Содержание", разверните элемент списка и выберите " Режим командной строки".
- Синтаксис командной строки
- Список буквенных команд
- Список буквенных переключателей
Желательно читать страницы справки в указанном порядке и текстовом файле. Rar.txt
сверху вниз при создании WinRAR.exe
или же Rar.exe
командная строка для использования в командном файле или в файле ярлыка (*.lnk).