Start-Process ArgumentList 的 PowerShell 报价

PowerShell quotes for Start-Process ArgumentList

提问人:DarkLite1 提问时间:5/29/2015 最后编辑:DarkLite1 更新时间:11/10/2023 访问量:17925

问:

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

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

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

PowerShell 行情

评论

0赞 TylerH 11/9/2023
这回答了你的问题吗?-ArgumentList 中的 Start-Process 变量

答:

9赞 DarkLite1 5/29/2015 #1

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

$Args = @"
"Tabs,Close other tabs" "Open,$dir"
"@
    
Start-Process $exe -ArgumentList $Args

Start-Process $exe -ArgumentList """Tabs,Close other tabs"" ""Open,$dir"""
0赞 sonjz 3/20/2018 #2

我发现有时你需要另一个层次的报价。

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

Start-Process `
  -FilePath "Installer.exe" `
  -Arguments "/s /qn /v""SOME_PARAM1=\""STRING_IN_PARAM\"" SOME_PARAM2=\""STRING_IN_PARAM\"""
  -Wait ;
0赞 CodeCabbie 8/7/2019 #3

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

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

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

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

start-process S:\Tools\explorer\TE64.lnk
0赞 user12508952 12/10/2019 #4

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

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