如何在 PowerShell 中使用 ValidateScript 属性?
ValidateScript 属性用于在进入函数之前验证脚本。例如,假设您要验证文件路径、验证远程计算机连接性等。我们将在这里以远程服务器连接性为例。
如果没有 ValidateScript 属性,我们会写出如下所示的脚本。
Function Check-RemoteServer { param ( [string]$Server ) if(Test-Connection -ComputerName $Server -Count 2 -Quiet -ErrorAction Ignore) { Write-Output "$server is reachable" } else { Write-Output "$Server is unreachable" } }
输出
PS C:\> Check-RemoteServer -Server asde.asde asde.asde is unreachable PS C:\> Check-RemoteServer -Server Google.com Google.com is reachable
使用 ValidateScript 属性,脚本将缩减为几行代码。
Function Check-RemoteServer { param ( [ValidateScript({Test-Connection -ComputerName $_ -Count 2 - Quiet}, ErrorMessage = "Remote Server unreachable")] [string]$Server ) Write-Output "$Server is reachable" }
输出
PS C:\> Check-RemoteServer -Server Google.com Google.com is reachable PS C:\> Check-RemoteServer -Server asde.asde Check-RemoteServer: Cannot validate argument on parameter 'Server'. Remote Server unreachable
广告