Powershell - 使用带参数的7zip

时间:2015-02-02 16:47:57

标签: powershell 7zip

我正在使用Powershell(V4)并且我在代码后面提供了here,但是,当我运行代码时,它会给我一个错误。

我的代码:

[string]$zipPath="C:\Users\someUser\7z.exe"
[string]$parameters= 'a', '-tzip','C:\Users\someUser\Desktop\Archive.zip','C:\Users\someUser\Desktop\Test'

Powershell查看:

PS C:\ Users \ someUser> $ zipPath =" C:\用户\ SomeUser是否\ 7z.exe"     $ parameters =' a',' -tzip',' C:\ Users \ someUser \ Desktop \ Archive.zip',' C:\ Users \ SomeUser的\桌面\测试'     &安培; $ zipPath $ parameters

& $zipPath $parameters

输出:

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


 Error:
 Incorrect command line

2 个答案:

答案 0 :(得分:1)

尝试使用Start-Process $parameters作为-ArgumentList

Start-Process $zipPath -ArgumentList $parameters -wait

答案 1 :(得分:0)

将所有参数作为单个字符串传递,例如:

2> $ec = 'echoargs'
3> & $ec $parameters
Arg 0 is <a -tzip C:\Users\someUser\Desktop\Archive.zip C:\Users\someUser\Desktop\Test>

Command line:
"C:\Users\hillr\Documents\WindowsPowerShell\Modules\Pscx\Apps\EchoArgs.exe"  "a -tzip C:\Users\someUser\Desktop\Archive.
zip C:\Users\someUser\Desktop\Test"

正常传递你的论点:

4> & $ec a -tzip C:\Users\someUser\Desktop\Archive.zip C:\Users\someUser\Desktop\Test
Arg 0 is <a>
Arg 1 is <-tzip>
Arg 2 is <C:\Users\someUser\Desktop\Archive.zip>
Arg 3 is <C:\Users\someUser\Desktop\Test>

Command line:
"C:\Users\hillr\Documents\WindowsPowerShell\Modules\Pscx\Apps\EchoArgs.exe"  a -tzip C:\Users\someUser\Desktop\Archive.z
ip C:\Users\someUser\Desktop\Test

BTW echoargs是来自PowerShell Community Extensions的工具。