如何在 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
廣告