2017-03-22 36 views
1

我想遞歸地從包含多個子文件夾的文件夾中獲取文件。我注意到Windows XP在該文件夾中創建了這個5b .... cb \ amd64文件,並且它一直拋出訪問被拒絕的錯誤。在PowerShell中忽略Get-childItem的目錄

Get-ChildItem:對路徑的訪問被拒絕。

我沒有管理員權限在這些機器上,我想要做的就是跳過這些文件夾。

有沒有辦法做到這一點?這是我嘗試過的沒有成功的。禁止這些消息是否是一個好主意,因爲它不會破壞腳本?任何幫助將不勝感激。

Get-ChildItem $sourceDir -Recurse | ? { $_.FullName -notlike '*\5b...cb\*'} 
| Where-Object {$_.CreationTime.Date -eq ((Get-Date).Date)} | 
foreach { 
    Write-Host $_ 
} 
+6

'GET-ChildItem $ sourceDir -Recurse -ErrorAction SilentlyContinue'? –

+2

你將要遇到的問題是'-exclude'只能在葉級別工作,所以在使用'-recurse'時排除目錄的子項目是沒有用的。訪問被拒絕的錯誤是一個自然的過濾器,Mathias建議你忽略這些錯誤是一個好主意。 – BenH

+0

聽起來不錯。感謝您的幫助。 – NepCoder

回答

4

你看到的是由Get-ChildItem引發的錯誤,所以試圖進一步過濾無法訪問的文件下來的管道也無濟於事。您需要抑制使用ErrorAction common parameter原來的錯誤:

Get-ChildItem $sourceDir -Recurse -ErrorAction SilentlyContinue | ...