我可以使用splatting将参数传递给非powershell可执行文件吗?
我可以这样做吗我可以使用splatting将参数传递给非powershell可执行文件吗?,powershell,Powershell,我可以这样做吗 $splatting_table = @{ "-parameter" = "value" "-parameter2" = "value2" } .\external-command.exe @splatting_table 相当于 .\external-command.exe -parameter value -parameter2 value2 虽然从技术上讲,可以将哈希表用于外部程序,但它很少能按预期工作。[1] 相反,请使用数组: 请注意,$splattin
$splatting_table = @{
"-parameter" = "value"
"-parameter2" = "value2"
}
.\external-command.exe @splatting_table
相当于
.\external-command.exe -parameter value -parameter2 value2
虽然从技术上讲,可以将哈希表用于外部程序,但它很少能按预期工作。[1]
相反,请使用数组:
请注意,$splatting_array
只是一个平面数组,其格式为元素对可读,其元素PowerShell作为单个参数传递
[1] 使用基于哈希表的散点格式时,不要在键名称中包含
-
符号(例如,使用参数,而不是
-参数
);除此之外,PowerShell在为外部程序构建命令行时,将使用:
连接您的条目,很少有程序支持该命令行;e、 例如,哈希表条目参数='value'
转换为
-参数:值
$splatting_array =
'-parameter', 'value',
'-parameter2', 'value2'
.\external-command.exe @splatting_array