Для вас было бы проще, если бы пакетный файл был правильно отформатирован. Последняя строка этого командного файла отвечает за выполнение 7z
командной строки. Это точка, где вы можете добавить -p
опцию.
"%SevenZip%" a -pYourPassword -tzip "%DestZip%" -r "%BaseDir%\*.*"
Я также отформатировал файл
@echo off setlocal enabledelayedexpansion REM Define file and folder locations set BaseDir=D:\SourceTest set DestZip=D:\Destinationtest\BACKUP.zip set SevenZip=C:\Program Files\7-Zip\7z.exe REM Zip all files and folders echo Getting time ... for /f "tokens=1-9" %%a in ('wmic.exe Path Win32_LocalTime Get Day^,DayOfWeek^,Hour^,Minute^,Month^,Quarter^,Second^,WeekInMonth^,Year ^| find /v ""') do ( set /a Line += 1 if "!Line!"=="1" ( set VarA=%%a&set VarB=%%b&set VarC=%%c&set VarD=%%d&set VarE=%%e&set VarF=%%f&set VarG=%%g&set VarH=%%h&set VarI=%%i ) if "!Line!"=="2" ( set !VarA!=%%a&set !VarB!=%%b&set !VarC!=%%c&set !VarD!=%%d&set !VarE!=%%e&set !VarF!=%%f&set !VarG!=%%g&set !VarH!=%%h&set !VarI!=%%i ) ) for %%a in (Month Day Hour Minute Second) do ( if !%%a! LSS 10 set %%a=0!%%a! ) set TimeStamp=%Year%%Month%%Day%_%Hour%%Minute%%Second% echo Compressing '%BaseDir%' ... for %%a in ("%DestZip%") do ( set DestZip=%%~dpna-%TimeStamp%%%~xa ) "%SevenZip%" a -pPassword@1 -tzip "%DestZip%" -r "%BaseDir%\*.*"
Когда я пытаюсь извлечь выходной файл, он запрашивает пароль:
Чтобы зашифровать имя файла, вам нужно добавить -mhe=on
опцию для шифрования заголовка файла. Но эта опция не работает с zip
форматом. Чтобы он работал для 7z
формата, внесите следующие изменения:
изменить имя целевого файла
set DestZip=D:\Destinationtest\BACKUP.7z
Редактировать последнюю строку
"%SevenZip%" a -mhe=on -pYourPassword "%DestZip%" -r "%BaseDir%\*.*"
После этих изменений он будет запрашивать пароль каждый раз.