Параметры определены для области действия функции, а не для скрипта.
То, что вы хотите, это Параметр раздел:
param ([string]$param1, [string]$param2)
function TestFunc([string]$param1, [string]$param2) {
Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"
}
TestFunc $param1 $param2
КонечноНаличие повторяющихся имен переменных вводит в заблуждение, но это всего лишь тестовая функция.В вашем случае вам даже не понадобится функция:
param ([string]$param1, [string]$param2)
Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"
Или, альтернативно:
param ([string]$param1, [string]$param2)
function TestFunc {
Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"
}
TestFunc
Или используйте автоматическую переменную $args
без определения каких-либо параметров:
function TestFunc {
Write-Host "------------------"
Write-Host $args[0]
Write-Host $args[1]
Write-Host "------------------"
}
TestFunc foo bar