1
所以我想用下面的「腳本」Powershell的刪除,項目留下的文件夾背後
Get-ChildItem 'F:\View\Profiles\' -Recurse -Force |
Where-Object {$_.Directory -match 'F:\\View\\Profiles\\((\w*).V2)\\AppData\\Roaming\\Trillian\\users\\((\w*%\w*%\w*))\\logs\\(_CLOUD|ASTRA)'} |
Remove-Item -Recurse -Force
這將刪除所有日誌文件,但留下的文件夾結構後面收拾我的一些用戶配置文件的每晚的基礎上。因此,我嘗試了下面的查詢。
Get-ChildItem 'C:\TestProfileClean' -Recurse -Force |
Where-Object {(($_.Name -eq "logs" -and $_.Directory) -and $_.DirectoryName -match 'C:\\TestProfileClean\\(\w*.V2)\\AppData\\Roaming\\Trillian\\Users\\((\w*)%40(\w*)%2Ecom)')} |
Remove-Item -Recurse -Force
這確保刪除的文件夾被命名爲「日誌」,它是一個目錄,目錄名稱是這種格式。
C:\\TestProfileClean\\(\w*.V2)\\AppData\\Roaming\\Trillian\\Users\\((\w*)%40(\w*)%2Ecom)
問題是,當我運行第二個命令,它不會刪除任何文件,如果我切斷$_.DirectoryName
然後我得到以下輸出。
Directory: C:\TestProfileClean\username.V2\AppData\Roaming\Trillian\users\username%40compcorp%2Ecom
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 12/14/2016 9:56 AM logs
這將刪除我想要的東西,但沒有足夠的特別讓我舒服地運行它。
什麼是做錯了,是阻止文件夾被刪除,但腳本將刪除所有非文件夾項目。
我很確定-Recurse的使用否定了這種需要,在任何情況下這樣做仍然只會刪除文件而不是文件夾。 目前,腳本仍然會將文件刪除儘可能多的文件夾,但仍然留下空的文件夾。 –
有沒有重複?刪除項擁有簽名'保護覆蓋無效RemoveItem(字符串路徑,布爾遞歸)' –
那麼,有170k文件和文件夾,我想清理。該文件得到清理,但文件夾沒有。每個配置文件中的每個文件夾都命名相同,但每個配置文件都有自己的路徑。 –