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

更新時間: 19-9-2020

1000+ 瀏覽

開啟您的 職業生涯

獲得認證,完成課程

開始
廣告