从 PowerShell 运行可执行文件时,路径中有空格则不起作用

从 PowerShell 运行可执行文件时,路径中有空格则不起作用

从 PowerShell 提示符中:

\Windows\system32\mspaint.exe

将运行 Paint。

Invoke-Expression -command "\Windows\system32\mspaint.exe"

但如果路径中有空格,PowerShell 就会输出假值,例如

Invoke-Expression -command "\install\sub directory\test.bat"

其中抱怨的是:

The term '\install\sub' is not recognized as the name of a cmdlet, function, script file, or operable program.

我错过了什么?

答案1

根据Technet 上的文章指出,用双引号括住路径是不够的。

您尝试使用的路径必须具有&目录前面必须有 (&) 符号,否则它将不起作用。

例如:

Invoke-Expression -command & "\install\sub directory\test.bat"

答案2

最简单的方法是使用invoke运算符:

&'String containing the path'

请注意,启动可执行文件Invoke-Expression实际上是错误的 cmdlet,最好使用Start-Process

相关内容