我可以使用Splting将参数传递给非PowerShell可执行文件吗?

bvjxkvbb  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(147)

我能做这样的事吗?

$splatting_table = @{
   "-parameter" = "value"
   "-parameter2" = "value2"
}
.\external-command.exe @splatting_table

作为等效于

.\external-command.exe -parameter value -parameter2 value2
k3bvogb1

k3bvogb11#

尽管通过外部程序使用splatting哈希表在技术上是可能的,但它很少会像预期的那样工作。
相反,**使用数组

$splatting_array = 
   '-parameter', 'value',
   '-parameter2', 'value2'

.\external-command.exe @splatting_array

请注意,$splatting_array只是一个平面数组-为实现元素对的可读性而进行了格式化-其元素PowerShell作为单独的参数传递。
[1]对于基于哈希表的Splting,不要在密钥名称中包含-符号(例如,使用parameter,而不是
-parameter);除此之外,PowerShell在为外部程序构造命令行时会将您的条目与:联接,很少有程序支持这一点;例如,哈希表条目parameter = 'value'转换为
-parameter:value

相关问题