1

Я исследовал этот заголовок, и был дан ответ следующего файла 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, который спрашивает?

2 ответа2

1

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

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

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

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).

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .