我試圖刪除給定文件夾的子文件夾中的所有文件,而不刪除子文件夾本身。我嘗試了各種例子,但他們沒有做到我期望的。在x天以前的子文件夾中刪除文件
文件樹,我試圖通過談判的基本結構是:
C:\Backups\Subfolder1 C:\Backups\Subfolder2 C:\Backups\Subfolder3
,我使用下面的代碼:
$limit = (Get-Date).AddDays(-14)
$path = "C:\Backups"
Get-ChildItem -Path $path -Recurse -Force |
Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } |
Remove-Item -WhatIf
我發現,在子目錄中的文件即使使用-Recurse
標誌,也會被忽略,儘管C:\ Backups目錄中的任何文件都包含在內。如果我刪除!$_.PSIsContainer
子句,則包含子文件夾中的文件,但所有這些目錄也是如此。
任何人都可以告訴我如何將文件包含在子文件夾中,同時仍然忽略子文件夾本身?
我沒有看到你的代碼中的錯誤,這應該工作......你知道,你是使用'-WhatIf'標誌並且沒有文件被實際刪除? –
是的,我知道這一點。在這個階段,我只驗證哪些文件正在被刪除。 – Duncan
將lt更改爲gt後,因爲無法使用兩週前創建的文件重新創建,所以對我也有效'如果執行操作「刪除文件」上的目標「C:\ Backups \ Subfolder1 \ Test.txt「.' – BenH