如何使用 PowerShell 函式引數驗證路徑?


要在 PowerShell 函式引數內驗證檔案或資料夾路徑,我們需要使用 ValidateScript 命令。通常,我們編寫如下指令碼來驗證此路徑。

function Validate-Path{
   param(
      [parameter(Mandatory)]
      [String]$Path
   )
   if(Test-Path $Path) {Write-Output "Path is valid"}
   else{Write-Output "Path is invalid"}
}

輸出

PS C:\> Validate-Path -Path C:\Temp
Path is valid

我們可透過 validatescript 引數在函式引數內新增類似的功能,這樣此指令碼將最初在引數檢查時引發錯誤。如下所示:

function Validate-Path{
   param(
      [parameter(Mandatory)]
      [ValidateScript({
      if(Test-Path $_){$true}
         else{throw "Path $_ is not valid"}
      })]
      [String]$Path
   )
   Write-Output "Executing Script further"
}

輸出

有效路徑

PS C:\> Validate-Path -Path C:\Temp
Executing Script further

無效路徑

PS C:\> Validate-Path -Path C:\Temp223
Validate-Path : Cannot validate argument on parameter 'Path'. Path C:\Temp223 is not valid
At line:1 char:21
+ Validate-Path -Path C:\Temp223
+ ~~~~~~~~~~
   + CategoryInfo : InvalidData: (:) [Validate-Path], ParameterBindingValidationException
   + FullyQualifiedErrorId : ParameterArgumentValidationError,Validate-Path

在上例中,如果路徑有效,指令碼將繼續執行,而如果路徑無效,它將引發異常且指令碼將終止。

更新於: 2021 年 5 月 17 日

2K+ 瀏覽量

開啟 事業

完成課程即可獲得認證

開始
廣告
© . All rights reserved.