Передача объекта как @James C., предложенная в его ответе, позволяет передавать только параметры в синтаксисе Powershell (например, -param1 value1 -param2 value2
)
Когда вам нужно больше контроля над передаваемыми параметрами, например:
- синтаксис двойной тире для стиля Unix
--param1 value1
- Синтаксис косой черты для стиля Windows
/param1 value1
- Требуется знак равенства (или двоеточие)
-param1=value1
или -param1:value1
- Нет значения для параметра
-boolean_param1
- дополнительные глаголы (значения без имени параметра)
value1 value2
вы можете использовать массив вместо объекта
взять команду ipconfig
, например, чтобы обновить все соединения с "con" в их имени:
$cmd = "ipconfig"
$params = @('/renew', '*Con*');
& $cmd $params
или конкретный вопрос, приведенный в примере:
$params = @('-Path', 'C:\temp\testfile.txt', '-DoSomethingSpecial')
.\Create-File.ps1 @params