我想在多個路徑中使用數組運行下面的腳本。我的目標是刪除保留最後7個版本的文件夾,但不能按預期工作。該行動僅考慮到第一條路徑D:\Test1
。循環遍歷每個文件夾,並刪除其中的一些
我相信我應該在ForEach-Object
之後加上($folders in $folders)
之類的東西,但我不知道如何。
任何想法,我在這裏想念什麼?
$path = @("D:\Test1","D:\Test2","D:\Test3")
$folders = Get-ChildItem -Path $path -Recurse |
Where-Object { $_.PSIsContainer } |
Group-Object { $_.Name.Split('_')[0] } |
ForEach-Object $Folders {
$_.Group |
sort CreationTime -Descending |
Select -Skip 7 |
foreach { Remove-Item $_.FullName -Force -WhatIf }
}
謝謝,腳本看起來更好,但它仍然沒有按預期工作,我的意思是動作只考慮到第一個路徑「D:\ Test1」,現在正在刪除其他所有內容... 爲了以防萬一,我使用下面的腳本在兩個不同的路徑中創建測試文件夾: 1..10 | Foreach-Object {New-Item -ItemType Directory C:\ Users \ ad_karendex \ Documents \ TEST_1 \ Folder _「$ _」} 1..10 | Foreach-Object {New-Item -ItemType目錄C:\ Users \ ad_karendex \ Documents \ TEST_1 \ Test _「$ _」} – KarenD
讓我檢查一下。 @Tana_CR –
謝謝@Ranadip Dutta! – KarenD