У меня есть две функции PowerShell, первая из которых вызывает вторую. Оба они принимают N аргументов, и один из них определяется просто для добавления флага и вызова другого. Вот примеры определений:
function inner
{
foreach( $arg in $args )
{
# do some stuff
}
}
function outer
{
inner --flag $args
}
Использование будет выглядеть примерно так:
inner foo bar baz
или это
outer wibble wobble wubble
Цель состоит в том, чтобы последний пример был эквивалентен
inner --flag wibble wobble wubble
Проблема: Как определено здесь, последний фактически приводит к передаче inner
двух аргументов: первый - «--flag», а второй - массив, содержащий «wibble», «колебание» и «колебание». Я хочу, чтобы inner
получил четыре аргумента: флаг и три исходных аргумента.
Поэтому меня интересует, как убедить powershell расширить массив $ args перед передачей его в inner
, передавая его как N элементов, а не как один массив. Я полагаю, что вы можете сделать это в Ruby с помощью оператора splatting (символ *), и я почти уверен, что PowerShell может это сделать, но я не помню, как.