2016-08-11 77 views
2

我目前正在編程一個可視化錯誤GUI,它在處理過程中捕獲任何異常並給用戶一個「容易理解」的錯誤信息。但似乎我在使用Get-ChildItem cmdlet時無法捕捉任何異常。我必須使用與try/catch不同的方法嗎?PowerShell Get-ChildItem如何捕捉異常

這裏的PowerShell腳本:

if ($checkBox1.Checked) { 
    Try{ 
     Get-ChildItem -path K:\adm_spm_logdb_data\ADP\DATA |Rename-Item -newname { $($_.BaseName -split '_provide')[0] + $_.Extension }; 
     }catch [System.Exception]{ 
     $listBox1.Items.Add("An error occured while trying to process ADP-Files please check the manual!") 
     } 
     $listBox1.Items.Add("Please check your System files to ensure the process has finished") 
    } 

我試圖通過使用虛假-path這會導致DriveNotFoundException創建例外。但它看起來像使用try/catch無法捕捉它。

回答

3

添加-ErrorAction StopGet-ChildItem的cmdlet:

if ($checkBox1.Checked) { 
    Try{ 
     Get-ChildItem -path "K:\adm_spm_logdb_data\ADP\DATA" -ErrorAction Stop |Rename-Item -newname { $($_.BaseName -split '_provide')[0] + $_.Extension }; 
     }catch [System.Exception]{ 
     $listBox1.Items.Add("An error occured while trying to process ADP-Files please check the manual!") 
     } 
     $listBox1.Items.Add("Please check your System files to ensure the process has finished") 
    } 
+0

謝謝它的工作!我會盡快接受這個答案。 –