我可以做这样的事情吗?
$splatting_table = @{
"-parameter" = "value"
"-parameter2" = "value2"
}
.\external-command.exe @splatting_table
Run Code Online (Sandbox Code Playgroud)
作为等价于
.\external-command.exe -parameter value -parameter2 value2
Run Code Online (Sandbox Code Playgroud)
虽然在技术上可以使用哈希表与外部程序进行splatting,但它很少能按预期工作。[1]
相反,使用数组:
$splatting_array =
'-parameter', 'value',
'-parameter2', 'value2'
.\external-command.exe @splatting_array
Run Code Online (Sandbox Code Playgroud)
请注意,这$splatting_array只是一个平面数组 - 格式化为元素对的可读性 - 其元素 PowerShell 作为单独的参数传递。
[1] 对于基于哈希表的展开,不要在-键名称中包含印记(例如, use parameter、 not
-parameter);除此之外,PowerShell 会:在为外部程序构建命令行时将您的条目与 结合起来,很少有程序支持这一点;例如,哈希表条目parameter = 'value'转换为
-parameter:value.
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |