2015-09-02 42 views
0

我使用Powershell v2运行wzunzip.exe来解压缩两个zip文件并将它们移动到临时目录中。这是我迄今为止...Powershell中的Winzip

$unzip = & 'C:\Program Files\pathTo\wzunzip.exe' 
$unzip_src = Join-Path $pathTo "p17694377_121020_MSWIN-x86-64_1of8.zip" 
$unzip_dst = $pathToDst 

iex "$unzip -min -d $unzip_src2 $unzip_dst" 

首先帮助菜单中执行时弹出,我不想要的,那么这个错误

术语“WinZip的”不识别为cmdlet的名称,功能,脚本文件或可操作程序。检查名称的拼写,如果包含路径,请检查该路径是否正确,然后重试。

我不确定为什么我得到帮助菜单,因为我传递了-min参数。我想如果我可以阻止帮助菜单,我的错误可能会消失。

另外我还没有添加任何代码来解压我需要的两个文件,直到我可以成功解压其中的一个。

任何想法?

+0

'&'C:\ Program Files \ pathTo \ wzunzip.exe'将在脚本的第一行执行'wzunzip.exe'。你确定这是你想要的吗? – n0rd

+0

我会假设我必须首先运行wzunzip.exe才能解压缩文件,对吗? –

+0

你想运行'wzunzip.exe'给它传递一些参数(zip文件的名字解压缩,即你的第四行)。你的第一行实际上只是在没有任何参数的情况下运行'wzunzip.exe',并将该程序输出放入'$ unzip'变量中。 – n0rd

回答

1

试试这个方法:

$unzip = '"c:\program files\winzip\wzunzip.exe"' 
$test_path = 'C:\Users\user\Desktop' 
$unzip_src = "`"$test_path\test.zip`"" 
$unzip_dst = "`"$test_path\test_unzipped`"" 
$command = "$unzip -e -d $unzip_src $unzip_dst" 

iex "& $command" 
+0

看起来,当我从''“c:\ program files \ winzip \ wzunzip.exe分离'&'时出现错误,因为它无法读取'program'和'files'之间的空格'c:\ program files'。如果我使用“'”来包含我的参数,我也不能运行程序,因为语法不正确。 –

1

我想通了......

Start-Process -filepath "S:\Program Files\winzip\wzunzip.exe" -ArgumentList "-d $unzip_src $unzip_dst" 

使用Start-Process我是能够成功地将文件解压缩到指定的位置。解压缩时我会得到另一个弹出窗口,但我知道还有其他参数可以添加以阻止出现弹出窗口。

感谢大家的帮助!