Могу ли я использовать splatting для передачи аргументов в исполняемый файл не-PowerShell? - PullRequest
2 голосов
/ 13 апреля 2020

Могу ли я сделать что-то подобное?

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

в качестве эквивалента для

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

1 Ответ

1 голос
/ 13 апреля 2020

Хотя технически возможно * использовать таблицу ha sh для разделения с внешними программами, она редко будет работать так, как задумано. [1]

Вместо этого используйте массив :

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

.\external-command.exe @splatting_array

Обратите внимание, что $splatting_array - это просто плоский массив - отформатированный для удобства чтения в парах элементов - элементы которого PowerShell передает как отдельные аргументы.


[1] При использовании ha sh табличного сплаттинга not включает символ - в именах ключей (например, использовать parameter, а не
-parameter); кроме того, PowerShell объединит ваши записи с : при создании командной строки для внешней программы, которую поддерживают немногие программы; например, запись sh в таблице parameter = 'value' означает
-parameter:value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...