Как извлечь все архивы из подкаталогов этой папки?

Как извлечь все архивы из подкаталогов этой папки?

Я исследовал этот заголовок и получил ответ в виде следующего CMD-файла:

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
           FOR %%X in (*.rar *.zip) DO (
        "C:\Program Files\7-zip\7z.exe" x %%X
           )
    popd
)

Файл cmd работает отлично до определенного момента. За исключением того, что он выдает следующее сообщение для каждого найденного файла с расширением "ZIP" и спрашивает:

Would you like to replace the existing file:
Path xxxxxx
Size xxxx
Modified: XXXXXXX
with the file from the archive:
Path: xxxx
Size: xxxxx
? Y<es> \ N<o> \ A<lways> \ S<kip all> \A<u>to rename all \ <Q>uit 

Он останавливается там, ожидая ввода. Но он спрашивает каждый раз, когда каждый файл распаковывается. Я собирался изменить указанный выше командный файл чем-то, что проверяет, ?найдено ли, а затем вызывает ответный cmd-файл, который выводит "Y", а затем завершается, что вернуло бы меня к исходному командному файлу для обработки следующего файла с найденным "zip".

Не знаю, на правильном ли я пути, но буду признателен за помощь. Не знаю, какая программа выводит текст ?и. Это Windows 7 или 7-zip спрашивает?

решение1

Я не знаю, какая программа выводит "?" и текст

Это 7z.exe.

Правильный параметр для использования: -aoa(Перезаписать все существующие файлы без запроса).

Пример:

"C:\Program Files\7-zip\7z.exe" x %%X -aoa

-ao (режим перезаписи) переключатель

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

Syntax

-ao[a | s | t | u ]

Switch    Description
-aoa  Overwrite All existing files without prompt.
-aos  Skip extracting of existing files.
-aou  aUto rename extracting file (for example, name.txt will be renamed to name_1.txt).
-aot  auto rename existing file (for example, name.txt will be renamed to name_1.txt).

Источник-ao (режим перезаписи) переключатель

решение2

Это 7-zip, который выдает приглашение. Похоже,-yвыключательдля 7z.exeделает то, что вы хотите:

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

В примере документации указано, что следует поместить -yпосле указанного пути 7z.exe.

Связанный контент