从具有“路径中的非法字符”的位置在CMD.EXE中执行Powershell脚本

时间:2013-05-09 19:05:31

标签: powershell cmd

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

当我调用此脚本时,我尝试在路径周围使用单引号和双引号,但没有运气。

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

根据我的阅读,我认为上述内容可行,但这不起作用,也没有单引号。

我很欣赏任何想法。

由于 *在我的示例路径上编辑* Mistype。抱歉。

2 个答案:

答案 0 :(得分:10)

一种解决方案是转移到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}"

答案 1 :(得分:2)

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

应该被转义

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

是的,总共有6个双引号