首页 > 解决方案 > 在 Powershell 中传递带有空格的参数列表

问题描述

我正在使用带有参数的 Start-Process 在 powershell 中启动程序。

$ServerToStart = "C:/a/b/c/xyz.exe"

Start-Process $ServerToStart -ArgumentList "a, b, Foo Bar"

参数 a 和 b 完美地工作,但是,参数“Foo Bar”的“Bar”被忽略,并且只接受“Foo” - 大概是因为空间。

如何在 powershell 中解决这个问题?

标签: stringwindowspowershell

解决方案


根据 PS 文档,“如果参数或参数值包含空格,则需要用转义的双引号将它们括起来。有关更多信息,请参阅about_Quoting_Rules。”

所以,在这种情况下,我认为正确的方法是

Start-Process $ServerToStart -ArgumentList "a, b, `"Foo Bar`""

推荐阅读