В V1 это действительно просто предпочтение. Использование оператора param
традиционно было более формальным, но функционально это то же самое.
Вероятно, вы увидите гораздо большее использование PARAM в PowerShell V2 из-за возможности добавлять атрибуты к параметрам, аналогично атрибутам в C #.
param
(
[Parameter( Mandatory=$true,
Position=0,
ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true)]
[Alias("name")]
[String]
$path
)
Здесь вы можете указать атрибут параметра и набор аргументов для этого атрибута. Вы также можете указать псевдонимы и ряд других требований проверки.
Кит также делает пару замечательных замечаний. Вы можете использовать оператор param для передачи параметров в анонимные блоки скриптов ( лямбда-выражения ) или в скрипт PS1.