Запуск 7-Zip из сценария Powershell
Я пытаюсь использовать 7-Zip для резервного копирования некоторых файлов внутри сценария Powershell (v2).
Я:
$zipPath = "C:Program Files-Zipz.exe"
[Array]$zipArgs = "-mx=9 a", "`"c:BackupFolderbackup.zip`"", "`"c:BackupFrombackMeUp.txt`""
&$zipPath $zipArgs;
но когда я запускаю это, я получаю:
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Error:
Incorrect command line
записывая это на экран, я получаю:
C:Program Files-Zipz.exe -mx=9 a "c:BackupFolderbackup.zip" "c:BackupFrombackMeUp.txt"
поэтому я предположил, что мне нужно поставить кавычки вокруг пути к 7z.exe, что дал мне:
$zipPath = "C:Program Files-Zipz.exe"
$zipPath = " `"$zipPath`" "
[Array]$zipArgs = "-mx=9 a", "`"c:BackupFolderbackup.zip`"", "`"c:BackupFrombackMeUp.txt`""
&$zipPath $zipArgs;
но затем я получаю следующую ошибку:
The term '"C:Program Files-Zipz.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:BackupScriptBackup.ps1:45 char:22
+ & <<<< `"$zipPath`" $zipArgs;
+ CategoryInfo : ObjectNotFound: ("C:Program Files-Zipz.exe":String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
написание его дает мне:
"C:Program Files-Zipz.exe" -mx=9 a "c:BackupFolderbackup.zip" "c:BackupFrombackMeUp.txt"
работает как и ожидалось при вставке прямо в командном окне. Я пытаюсь понять это некоторое время, но предположим, что я что-то упускаю (вероятно, совершенно очевидно). Кто-нибудь видит, что мне нужно сделать, чтобы сбежать?
5 ответов
нашел этой скрипт и адаптирован к вашим потребностям. Не могли бы вы попробовать:
if (-not (test-path "$env:ProgramFiles-Zipz.exe")) {throw "$env:ProgramFiles-Zipz.exe needed"}
set-alias sz "$env:ProgramFiles-Zipz.exe"
$Source = "c:\BackupFrom\backMeUp.txt"
$Target = "c:\BackupFolder\backup.zip"
sz a -mx=9 $Target $Source
попробуйте использовать параметр -файл, чтобы указать расположение программы или скрипт:
-файл "C:\Program файлы\что-то.EXE-файл"
просто суффикс команды с амперсандом
& "C:\Program Files-Zipz.exe" -mx=9 a "c:\BackupFolder\backup.zip" "c:\BackupFrom\backMeUp.txt"