Powershell-使用带参数的7zip

Powershell-使用带参数的7zip,powershell,7zip,Powershell,7zip,我使用的是Powershell(V4),我遵循代码给出,但是,当我运行代码时,它会给我一个错误 我的代码: [string]$zipPath="C:\Users\someUser\7z.exe" [string]$parameters= 'a', '-tzip','C:\Users\someUser\Desktop\Archive.zip','C:\Users\someUser\Desktop\Test' 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor

我使用的是Powershell(V4),我遵循代码给出,但是,当我运行代码时,它会给我一个错误

我的代码:

[string]$zipPath="C:\Users\someUser\7z.exe"
[string]$parameters= 'a', '-tzip','C:\Users\someUser\Desktop\Archive.zip','C:\Users\someUser\Desktop\Test'
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18


 Error:
 Incorrect command line
Powershell视图:

[string]$zipPath="C:\Users\someUser\7z.exe"
[string]$parameters= 'a', '-tzip','C:\Users\someUser\Desktop\Archive.zip','C:\Users\someUser\Desktop\Test'
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18


 Error:
 Incorrect command line
PS C:\Users\someUser>$zipPath=“C:\Users\someUser\7z.exe” $parameters='a','-tzip','C:\Users\someUser\Desktop\Archive.zip','C:\Users\someUser\Desktop\Test' &$zipPath$参数

& $zipPath $parameters
输出:

[string]$zipPath="C:\Users\someUser\7z.exe"
[string]$parameters= 'a', '-tzip','C:\Users\someUser\Desktop\Archive.zip','C:\Users\someUser\Desktop\Test'
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18


 Error:
 Incorrect command line

尝试使用带有
$parameters
启动进程
作为
-ArgumentList

Start-Process $zipPath -ArgumentList $parameters -wait

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

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"
2>$ec='echoargs'
3> &$ec$参数

Arg 0是。

是的,这也有效。谢谢出于好奇,为什么不按照示例所示的方式工作呢?如果您只是将其作为普通字符串使用,它应该会工作,但我猜
&
不知道如何解析数组以获取程序参数,而
启动进程
知道。