各位好
我現在要用powershell移除掉一個目錄裡面超過30天未使用的檔案及資料夾
但是需要保留幾個子目錄及底下的檔案
|-C:\TEST
-C:\TEST\A
-C:\TEST\A\A1
-C:\TEST\A\A2.txt
-C:\TEST\B
-C:\TEST\B\B1
-C:\TEST\B\B2.txt
-C:\TEST\C
-C:\TEST\C\C1
-C:\TEST\C\C2.txt
-C:\TEST\D.doc
-C:\TEST\E.txt
除了A跟B資料夾外的檔案,超過30天未使用必須刪除
我嘗試了exclude跟.Fullname -notlike都沒有成功
請教一下各位該怎麼寫?
謝謝
#notlike
$before=(Get-Date).AddDays(-30) $exfolder=('C:\TEST\A*' , 'C:\TEST\B*')
Get-ChildItem -path 'C:\TEST' -Recurse
Where-Object {($.LastWriteTime -lt $before ) -and ( $.FullName -notlike
$exfolder)} |
Remove-Item -force -Recurse
#exclude
$before=(Get-Date).AddDays(-30)
$exfolder=('C:\TEST\A*' , 'C:\TEST\B*' )
Get-ChildItem -path 'C:\TEST' -Recurse -Exclude $exfolder
Where-Object { $_.LastWriteTime -lt $before } |
Remove-Item -force -Recurse
抱歉,這是哪邊弄來的範例嗎?? 還是這邊發文會把程式碼弄亂?
Where-Object前面沒有目標可以找,你錯誤訊息要不要貼上來?
就算程式碼是同一行因為這邊編輯文章導致被換行了,也沒看到你的連續執行符號,
然後也沒看到串接引號, Where-Object{}裡面要用到物件變數要用 $_.
你直接打$.LastWriteTime 找不到變數的資料的
程式邏輯沒錯,但是感覺反而犯了一些怪怪的基本錯誤