我能做这样的事吗?
$splatting_table = @{
"-parameter" = "value"
"-parameter2" = "value2"
}
.\external-command.exe @splatting_table
作为等效于
.\external-command.exe -parameter value -parameter2 value2
我能做这样的事吗?
$splatting_table = @{
"-parameter" = "value"
"-parameter2" = "value2"
}
.\external-command.exe @splatting_table
作为等效于
.\external-command.exe -parameter value -parameter2 value2
1条答案
按热度按时间k3bvogb11#
尽管通过外部程序使用splatting的哈希表在技术上是可能的,但它很少会像预期的那样工作。
相反,**使用数组:
请注意,
$splatting_array
只是一个平面数组-为实现元素对的可读性而进行了格式化-其元素PowerShell作为单独的参数传递。[1]对于基于哈希表的Splting,不要在密钥名称中包含
-
符号(例如,使用parameter
,而不是-parameter
);除此之外,PowerShell在为外部程序构造命令行时会将您的条目与:
联接,很少有程序支持这一点;例如,哈希表条目parameter = 'value'
转换为-parameter:value
。