
Я исследовал этот заголовок и получил ответ в виде следующего 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).
решение2
Это 7-zip, который выдает приглашение. Похоже,-y
выключательдля 7z.exe
делает то, что вы хотите:
Все запросы на перезапись будут подавлены, а файлы на диске с такими же именами, как в архиве, будут перезаписаны.
В примере документации указано, что следует поместить -y
после указанного пути 7z.exe
.