8

我正在尝试在 cmd.exe 中调用 Powershell 脚本,该脚本位于如下所示的位置:c:Data\foo - bar\location-1\ShellScript.ps1

当我调用这个脚本时,我尝试在路径周围使用单引号和双引号,但没有成功。

PowerShell.exe -File "c:\Data\foo - bar\location-1\ShellScript.ps1" Arg1 Arg2

从我读过的内容来看,我认为上述方法可行,但这不起作用,单引号也不起作用。

我很欣赏任何想法。

感谢 *Edit * 在我的示例路径上输入错误。对不起。

4

2 回答 2

11

一种解决方案是迁移到 PowerShell v3,这样可以正常工作:

PS> powershell.exe -file 'C:\temp\foo - bar\location-1\foo.ps1' arg1 arg2
made it!, args are arg1, arg2

如果您需要继续使用 V2,请尝试转义空格,例如:

PS> powershell.exe -file "C:\temp\foo` -` bar\location-1\foo.ps1" arg1 arg2

从 cmd.exe,这应该可以工作:

C:\> PowerShell.exe -Command "& {& 'c:\Data\foo - bar\location-1\ShellScript.ps1' Arg1 Arg2}"
于 2013-05-10T00:12:03.397 回答
3
PowerShell.exe -File "c:\Data\foo - bar\location-1\ShellScript.ps1"

应该逃脱

PowerShell.exe "& ""c:\Data\foo - bar\location-1\ShellScript.ps1"""

是的,这确实是总共 6 个双引号

于 2014-02-19T16:25:11.490 回答