function test([string] $a, [string] $b) {
Write-Host "аргумент 1: $a"
Write-Host "аргумент 2: $b"
}
судячи з формату визначення, функцію треба викликати так:
test("один", "два")
невірно, сідай, двійка. правильно — за задумом творців powershell, — ось так:
test "один" "два"
бо «л» — це логіка!
це тим більше логічно (з великої літери /\), що методи класів у тому ж таки powershell правильно викликати… з дужками і комами, звісно ж:
$b.Replace("два", "три")
як це чому? тому що логіка! рукалице.
p.s. найгірше те, що перший, неправильний виклик функції test("один", "два") жодної помилки не генерує: powershell просто зліпить все, що в дужках, докупи й передасть до функції як перший аргумент ($a), залишивши другий порожнім. я вже згадував логіку?