2015-08-24 2 views
3

Я пытаюсь извлечь файлы из защищенного паролем ZIP, на USB-накопителе, используя PowerShell. Я искал много способов, но самый простой из них, похоже, не работает.Unzip Защищенные паролем файлы

$7ZipPath = "C:\Program Files\7-Zip\7z.exe" 
$zipFile = "E:\passwordprotectedtest.zip" 
$zipFilePassword = "Foo" 

& $7ZipPath e -oE:\ -y -tzip -p "$zipFilePassword" "$zipFile" 

Я получаю эту ошибку:

7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 

Error 
Cannot use absolute pathnames for this command 

Затем я переехал в файл на мой рабочий стол, изменился $zipFile = "passwordprotectedtest.zip", изменилась -oE:\ to -oC:\.

Это исправлена ​​ошибка имени пути, но начал получать эту ошибку вместо

7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 

Error 
Cannot find archive 
+1

ли вы перейти от E: -> C: или из E: -> Desktop? Если последний, вам нужно предоставить полный путь, 7z.exe не будет знать, где находится ваш рабочий стол на C: \ –

+0

Я переместил файл с E: \ на C: \ ... \ Desktop (тот же каталог, что и сценарий). Я также предоставил полный путь к рабочему столу, но получил первую ошибку. –

+2

Попробуйте использовать 'Start-Process' и перечислите аргументы с помощью' -ArguementList' -edit, см. [Здесь] (http://windowsitpro.com/powershell/running-executables-powershell) для получения более подробной информации – user4317867

ответ

3

Попробуйте так:

$7ZipPath = '"C:\Program Files\7-Zip\7z.exe"' 
$zipFile = '"e:\passwordprotectedtest.zip"' 
$zipFilePassword = "Foo" 
$command = "& $7ZipPath e -oe:\ -y -tzip -p$zipFilePassword $zipFile" 
iex $command