Top.Mail.Ru
Ответы
Аватар пользователя
1 неделю назад
от

Как при исполнении 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нед

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 не найден!
)