Как использовать WinRAR в пакетном режиме?

Мне нужна помощь с пакетным файлом, потому что я застрял в WinRAR в пакетном режиме, так как я не использовал его раньше.

Вот ДЕРЕВО моих папок, включая пакетный файл: введите здесь описание изображения

  • Каждый файл RAR имеет одинаковое имя папки каталога (папка vegies).

Я хотел бы иметь возможность извлекать/копировать все папки/подпапки внутри каждого .rar из "Example/Program_Ex/vegie" обратно в один каталог в "Example/Program_Ex/vegies" (не забывайте, что папки vegies уже существуют в каждом RAR, которые я не могу изменить, поскольку они автоматически обновляются.)

Итак, в основном с пакетным файлом я хотел бы:

extract "Example/Program_Ex/vegie/random.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random2.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random3.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random4.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random5.rar" to "Example/Program_Ex/vegies"

Я также пытаюсь не указывать диск, более или менее потому, что пакетный файл будет находиться в правильной папке, а не использовать что-то вроде CD или PATH?

Я просмотрел несколько примеров в Интернете и здесь, но я все еще не уверен, как лучше всего это сделать.

Самый близкий пример, который я могу найти, будет таким:

@echo off

set destinationRAR=destination_winrar_file
set source=source_folder_path

"C:\Program Files\WinRAR\WinRAR.exe" a -ep1 -esh -ibck -m0 -r -t %destinationRAR% %source%

(Выше с http://fredy-invayne.blogspot.com.au/2013/05/example-winrar-batch-file.html)

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


person Burgo855    schedule 24.04.2014    source источник
comment
Вы хотите скопировать архивы или извлечь их содержимое? Обратите внимание, что команда a WinRAR в вашем примере предназначена для добавления файлов в (новый или существующий) архив.   -  person Andriy M    schedule 24.04.2014
comment
Извините, @Andriy M, я отредактировал свой вопрос, я хочу извлечь их содержимое, нижний пример выше - самый близкий пример, который я могу найти, не обязательно тот, который мне нужен. Ваше здоровье.   -  person Burgo855    schedule 24.04.2014
comment
Командная строка 7Zip хороша для этой работы.   -  person 09stephenb    schedule 24.04.2014
comment
7-Zip поддерживает старые версии Windows?   -  person Burgo855    schedule 24.04.2014


Ответы (2)


@echo off
    for %%a in (
        "%~dp0Example\Program_Ex\vegie\*.rar"
    ) do unrar x "%%~fa" -w "%~dp0Example\Program_Ex" -o+

Для каждого файла по указанному пути в папке, в которой хранится пакетный файл, извлеките содержимое файла, указав целевую папку и выбрав этот existing files must be overwritten.

person MC ND    schedule 24.04.2014

Вы можете извлечь все архивы одним вызовом WinRAR:

"C:\Program Files\WinRAR\WinRAR.exe" x "%~dp0Program_Ex\vegie\random*.rar" "%~dp0Program_Ex\"

Последний аргумент в приведенной выше командной строке указывает целевую папку для всех архивов. Вы можете добавить переключатель -o+ (должен идти сразу после x), чтобы указать, что все файлы должны быть перезаписаны:

"C:\Program Files\WinRAR\WinRAR.exe" x -o+ "%~dp0Program_Ex\vegie\random*.rar" "%~dp0Program_Ex\"

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

person Andriy M    schedule 24.04.2014