我可以做这样的事情吗?
$splatting_table = @{
"-parameter" = "value"
"-parameter2" = "value2"
}
.\external-command.exe @splatting_table
作为等价于
.\external-command.exe -parameter value -parameter2 value2
最佳答案
虽然技术上可以为 splatting 使用哈希表对于外部程序,它很少能按预期工作。 [1]
相反,使用数组:
$splatting_array =
'-parameter', 'value',
'-parameter2', 'value2'
.\external-command.exe @splatting_array
请注意
$splatting_array
只是一个平面数组 - 格式化为元素对的可读性 - 其元素 PowerShell 作为单独的参数传递。[1] 对于基于哈希表的 splatting,不包括
-
键名中的符号(例如,使用 parameter
,而不是-parameter
);除此之外,PowerShell 将使用 :
加入您的条目。为外部程序构建命令行时,很少有程序支持;例如,哈希表条目 parameter = 'value'
翻译成-parameter:value
.
关于powershell - 我可以使用 splatting 将参数传递给非 powershell 可执行文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61178950/