param ([ValidateScript({ Test-Path -Path $_ -PathType Leaf })][string]$filePath)
如果我声明这样的参数,如果它是无效路径,$filePath
会评估为假吗?
重点是
if($filePath) { /* do stuff... */ }
或者会抛出异常吗?
答案 0 :(得分:14)
如果您的函数需要有效路径,则应使用ValidateScript
属性。如果用户提供无效路径,PowerShell将为您抛出错误。您可能还想添加[Parameter(Mandatory=$true)]
,否则您可以省略$filePath
参数,该函数将被无异常调用。
以下是一个例子:
function This-IsYourFunction
{
Param
(
[Parameter(Mandatory=$true)]
[ValidateScript({Test-Path $_})]
[string]
$filePath
)
Write-Host "Hello, World."
}