Вы говорите о параметре, определенном с помощью param
, и об аргументах, доступных через $args
?
В общем случае параметр - это переменная, которая является частью сигнатуры метода (объявления метода). Аргумент - это выражение, используемое при вызове метода.
Но для разграничения param
и args
вы можете рассматривать первые как определяющие параметры, которые можно передать скрипту (или функции и т. Д.), Используя имя параметра и указав его значение ( именованный аргумент) или позиционные аргументы, указывающие только значения и последние как доступ к позиционным аргументам сверх параметров, ожидаемых сценарием, как определено в param
Рассмотрим следующий скрипт с именем test.ps1:
param($param1,$param2)
write-host param1 is $param1
write-host param2 is $param2
write-host arg1 is $args[0]
write-host arg2 is $args[1]
И, предположим, я называю скрипт как:
.\test.ps1 1 2 3 4
Я получу вывод:
param1 is 1
param2 is 2
arg1 is 3
arg2 is 4
Это эквивалентно названию:
.\test.ps1 -param1 1 -param2 2 3 4
или даже
.\test.ps1 3 4 -param2 2 -param1 1