我可以使用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