我正在尝试在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。抱歉。
答案 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个双引号