Teria sido mais fácil para você se o arquivo em lote tivesse sido formatado corretamente. A última linha deste arquivo de lote é responsável por executar a linha de comando 7z
. Este é o ponto em que você pode adicionar a opção -p
.
"%SevenZip%" a -pYourPassword -tzip "%DestZip%" -r "%BaseDir%\*.*"
Eu também formatei o arquivo
@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-Zipz.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%\*.*"
Quando tento extrair o arquivo de saída, ele pede senha:
Paracriptografaronomedoarquivo,vocêprecisaadicionaraopção-mhe=on
paracriptografarocabeçalhodoarquivo.Masestaopçãonãofuncionacomoformatozip
.Paraquefuncionepara7z
format,façaasseguintesalterações:
altereonomedoarquivodedestino
setDestZip=D:\Destinationtest\BACKUP.7z
Editarúltimalinha
"%SevenZip%" a -mhe=on -pYourPassword "%DestZip%" -r "%BaseDir%\*.*"
Após essas alterações, ele solicitará a senha todas as vezes.