1 votes

Comment ajouter une commande de mot de passe dans un fichier bat zip

J'ai un script ci-dessous qui fonctionne parfaitement, tout ce dont j'ai besoin est d'ajouter un mot de passe & un cryptage pendant la compression. Une idée de l'endroit où je dois mettre le -p pour le faire fonctionner ? J'ai essayé mais ça ne fonctionne pas pour moi.

@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 -tzip "%DestZip%" -r "%BaseDir%\*.*"

3voto

Sandeep Points 1112

Cela aurait été plus facile pour vous si le fichier batch avait été formaté correctement. La dernière ligne de ce fichier batch est responsable de l'exécution de 7z ligne de commande. C'est à ce moment que vous pouvez ajouter -p opción.

"%SevenZip%" a -pYourPassword -tzip "%DestZip%" -r "%BaseDir%\*.*"

J'ai également formaté le fichier

@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%\*.*"

Lorsque j'essaie d'extraire le fichier de sortie, il demande un mot de passe :

enter image description here

Pour crypter le nom du fichier, vous devez ajouter -mhe=on pour crypter l'en-tête du fichier. Mais cette option ne fonctionne pas avec zip format. Pour que cela fonctionne pour 7z effectuez les modifications suivantes :

changer le nom du fichier cible

set DestZip=D:\Destinationtest\BACKUP.7z

Modifier la dernière ligne

"%SevenZip%" a -mhe=on -pYourPassword "%DestZip%" -r "%BaseDir%\*.*"

Après ces changements, il demandera un mot de passe à chaque fois.

1voto

JamesReece Points 59

Vous pouvez utiliser l'utilitaire open source 7zip Étapes

  1. Installer 7zip
  2. Ajouter " C:\Program Archivos \7 -Zip" dans les Variables d'environnement.
  3. Utilisez l'exemple de code suivant pour créer des commandes dans votre fichier bat.

Syntaxe -p{password}

{mot de passe} Spécifie le mot de passe. Exemples

7z a archive.7z -psecret -mhe *.txt

compresse les fichiers *.txt vers archive.7z en utilisant le mot de passe "secret". Il crypte également les en-têtes d'archives (commutateur -mhe), donc les noms de fichiers seront cryptés.

7z x archive.zip -psecret

extrait tous les fichiers de archive.zip en utilisant le mot de passe "secret".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X