J'essaie d'utiliser 7-Zip pour sauvegarder certains fichiers dans un script Powershell (v2).
J'ai:
$zipPath = "C:\Program Files\7-Zip\7z.exe"
[Array]$zipArgs = "-mx=9 a", "`"c:\BackupFolder\backup.Zip`"", "`"c:\BackupFrom\backMeUp.txt`""
&$zipPath $zipArgs;
Mais quand je lance ceci, je reçois:
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Error:
Incorrect command line
En écrivant cela à l'écran, je reçois:
C:\Program Files\7-Zip\7z.exe -mx=9 a "c:\BackupFolder\backup.Zip" "c:\BackupFrom\backMeUp.txt"
J'ai donc supposé que je devais mettre des guillemets autour du chemin vers 7z.exe, cela m'a donné:
$zipPath = "C:\Program Files\7-Zip\7z.exe"
$zipPath = " `"$zipPath`" "
[Array]$zipArgs = "-mx=9 a", "`"c:\BackupFolder\backup.Zip`"", "`"c:\BackupFrom\backMeUp.txt`""
&$zipPath $zipArgs;
Mais alors j'obtiens l'erreur suivante:
The term '"C:\Program Files\7-Zip\7z.exe"' is not recognized as the name of a cmdlet, function, script file
, or operable program. Check the spelling of the name, or if a path was included, verify that the path is c
orrect and try again.
At C:\BackupScript\Backup.ps1:45 char:22
+ & <<<< `"$zipPath`" $zipArgs;
+ CategoryInfo : ObjectNotFound: ("C:\Program Files\7-Zip\7z.exe":String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
L'écrire me donne:
"C:\Program Files\7-Zip\7z.exe" -mx=9 a "c:\BackupFolder\backup.Zip" "c:\BackupFrom\backMeUp.txt"
Ce qui fonctionne comme prévu lorsque vous collez directement dans une fenêtre de commande ... Je cherche à comprendre cela depuis un moment, mais je suppose qu'il me manque quelque chose (probablement assez évident). Quelqu'un peut-il voir ce que je dois faire pour réussir?
Trouvé this script et l’adapte à vos besoins. Pouvez-vous s'il vous plaît essayer:
if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) {throw "$env:ProgramFiles\7-Zip\7z.exe needed"}
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
$Source = "c:\BackupFrom\backMeUp.txt"
$Target = "c:\BackupFolder\backup.Zip"
sz a -mx=9 $Target $Source
mettre "&" caractère spécial avant la commande 7z. Exemple: & 7z ...
Peut-être qu'une solution plus simple consiste à exécuter 7-Zip sur votre Powershell via cmd
:
cmd /c 7za ...
essayez d'utiliser le paramètre -file pour spécifier l'emplacement du programme ou du script:
-file "C:\Program Files\someting.exe"
Suffixe simplement la commande avec une esperluette
& "C:\Program Files\7-Zip\7z.exe" -mx=9 a "c:\BackupFolder\backup.Zip" "c:\BackupFrom\backMeUp.txt"