Вы можете делать то, что говорит TheIncorrigle1, но если входная переменная может быть пустой, вы также можете использовать следующее:
function MyFunction{
[CmdletBinding(
PositionalBinding = $false,
DefaultParameterSetName = "MySet1"
)]
param(
[Parameter(ParameterSetName = "MySet1")]
[string]$Para1 = "Para1 default",
[Parameter(ParameterSetName = "MySet1")]
[string]$Para2 = $para2
)
if(!$Para2){
Write-Output "ABC"
}else{
Write-Output $Para2
}
}
MyFunction -Para2 ""
Таким образом, если что-то ставится после -Para2, это будет вывод, и есливвод пустой или $ null выводит «ABC».
Также я немного отформатировал скрипт, чтобы сделать его более читабельным.Небольшой совет - это руководство по написанию сценариев PowerShell, которое всегда обеспечивает удобочитаемость и поддержку ваших сценариев.
Надеюсь, это поможет!
Возможное решение для вашего вопроса из комментария:
try{
MyFunction -Para2
}catch{
MyFunction -Para2 ""
}