Как при исполнении batch файла избавится от запроса параметра для команды архивации 7-zip (7z a )?
Подскажите пожалуйста.
Написан .bat файл, в нем одна из команд добавляет один файл (passport.xml) в архив (references.edc.zip).
Строка с командой выглядит так:
"C:\Program Files\7-Zip\7z.exe" a "%cd%\referencesActual\references.edc.zip" "%cd%\referencesActual\passport.xml"
При выполнении скрипта командная строка запрашивает вопрос:
"Что означает D:\FinalMyValidate2\referencesActual\passport.xml:
имя файла или каталога (F = файл, D = каталог)?"
и ожидает ввод от пользователя F или D. После ввода F все отрабатывает нормально.
Как избежать запроса ввода с клавиатуры?
1. Самый простой способ — добавить ключ -y (ответ "Да" на все запросы)
Модифицируйте вашу команду так:
batch
"C:\Program Files\7-Zip\7z.exe" a -y "%cd%\referencesActual\references.edc.zip" "%cd%\referencesActual\passport.xml"
Что делает -y:
— Автоматически отвечает "Yes" на все вопросы (включая подтверждение перезаписи архива, если он уже существует).
2. Альтернатива: явно указать, что это файл (если -y не сработает)
Добавьте ключ -i!, чтобы явно сказать 7-Zip, что это файл:
batch
"C:\Program Files\7-Zip\7z.exe" a -i!"%cd%\referencesActual\passport.xml" "%cd%\referencesActual\references.edc.zip"
3. Дополнительные проверки (если файл может отсутствовать)
Если есть риск, что файл passport.xml не существует, добавьте проверку перед архивацией:
batch
if exist "%cd%\referencesActual\passport.xml" (
"C:\Program Files\7-Zip\7z.exe" a -y "%cd%\referencesActual\references.edc.zip" "%cd%\referencesActual\passport.xml"
) else (
echo Файл passport.xml не найден!
)