繁体   English   中英

Start-Process ArgumentList 的 PowerShell 引号

[英]PowerShell quotes for Start-Process ArgumentList

我正在尝试让应用程序tablacus 资源管理器打开一个文件夹路径。 这适用于以下格式:

$ex = 'S:\Tools\explorer\TE64.exe'
Start-Process $ex -ArgumentList '"Tabs,Close other tabs" "Open,C:\Program Files"'

但是我真的很想将路径放在变量中( $dir = 'C:\\Program Files' ),而且我似乎无法正确使用引号,因此可以正确解释它。

感谢您的帮助。

我在MS 博客上找到了两个解决方案:

$Args = @"
"Tabs,Close other tabs" "Open,$dir"
"@

start $ex -ArgumentList $Args

或者

start $ex -ArgumentList """Tabs,Close other tabs"" ""Open,$dir"""

我发现有时你需要另一个级别的报价。

就我而言,我必须在-Arguments /v设置变量,所以我必须使用\\""来做到这一点。

Start-Process `
  -FilePath "Installer.exe" `
  -Arguments "/s /qn /v""SOME_PARAM1=\""STRING_IN_PARAM\"" SOME_PARAM2=\""STRING_IN_PARAM\"""
  -Wait ;

如果您的参数是常量字符串,则创建一个快捷方式并调用它。

将快捷方式的“目标”设置为:

"S:\Tools\explorer\TE64.exe" "Tabs,Close other tabs" "Open,C:\Program Files"

将您的快捷方式命名为“TE64”并在 powershell 中调用它,如下所示:

start-process S:\Tools\explorer\TE64.lnk

以下语法对我来说很好用,试试这个:

-ArgumentList "\`"$($variable)\`""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM