使用 PowerShell 刪除早於 X 天的檔案
PowerShell 支援處理系統中的不同檔案操作。你可以在 PowerShell 中執行各種檔案任務,例如建立
、複製
、移動
、重新命名
、編輯
、刪除
和檢視
檔案。
許多檔案在系統中長時間未使用。某些檔案可能不再需要,並且需要在某些天后刪除。
你必須手動刪除檔案,檢查從檔案資源管理器建立的日期。當有很多檔案要刪除時,可能會花費你很多時間。
相反,你可以使用 PowerShell 命令來自動執行檔案刪除任務,從而節省大量時間。
本教程將教你使用 PowerShell 刪除超過 X 天的檔案。
使用 Remove-Item
Cmdlet 使用 PowerShell 刪除超過 X 天的檔案
Remove-Item
cmdlet 從指定位置刪除一個或多個專案。多個供應商支援它。
你可以使用此 cmdlet 刪除不同型別的專案,包括檔案、資料夾、登錄檔項、變數、別名和函式。它不返回任何輸出。
例如,我們有一個檔案 C:\New\test.txt
。
Get-Item "C:\New\test.txt"
輸出:
Directory: C:\New
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/1/2022 11:39 AM 80 test.txt
現在,我們將使用 Remove-Item
刪除它。
Remove-Item "C:\New\test.txt"
Get-Item "C:\New\test.txt"
輸出:
如你所見,由於檔案被刪除,因此找不到檔案路徑。
Get-Item : Cannot find path 'C:\New\test.txt' because it does not exist.
At line:1 char:1
+ Get-Item C:\New\test.txt
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\New\test.txt:String) [Get-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand
你不能直接通過管道傳遞此 cmdlet 的路徑。但是,你可以通過管道傳輸包含路徑的字串。
現在,讓我們看看如何使用 Remove-Item
刪除超過 X 天的檔案。
在這裡,我們有一個目錄 C:\test_folder1
,我們將向你展示如何刪除該目錄中所有早於 X 天的檔案。
以下命令獲取 C:\test_folder1
目錄中的所有檔案。
Get-ChildItem "C:\test_folder1" -File
上面的命令輸出通過管道傳送到下面的命令,該命令按從當前日期開始少於 X 天的建立時間過濾檔案。
Where CreationTime -lt (Get-Date).AddDays(-15)
之後,它通過管道傳送到要刪除的 Remove-Item
cmdlet。
刪除早於 X 天的檔案的最終程式碼應如下所示:
Get-ChildItem "C:\test_folder1" | Where CreationTime -lt (Get-Date).AddDays(-15) | Remove-Item
你還可以使用檔案的 LastWriteTime
刪除上次寫入時間早 X 天的檔案。
Get-ChildItem "C:\test_folder1" | Where LastWriteTime -lt (Get-Date).AddDays(-15) | Remove-Item
如果要刪除目錄中的所有檔案,包括子目錄,則必須使用 -Recurse
引數。
Get-ChildItem "C:\test_folder1" -Recurse | Where LastWriteTime -lt (Get-Date).AddDays(-15) | Remove-Item
-Force
引數允許你刪除隱藏或只讀檔案。
Get-ChildItem "C:\test_folder1" | Where CreationTime -lt (Get-Date).AddDays(-15) | Remove-Item -Force
你可以使用 Get-ChildItem
cmdlet 在檔案資源管理器或 PowerShell 控制檯中驗證已刪除的檔案。
Get-ChildItem "C:\test_folder1" -Recurse
輸出:
超過 15 天的所有檔案都將被刪除。
Directory: C:\test_folder1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/23/2022 11:11 PM New folder
-a---- 2/23/2022 10:29 PM 0 books.txt
-a---- 2/23/2022 10:29 PM 0 hello.txt
Directory: C:\test_folder1\New folder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/23/2022 10:26 PM 0 cars.txt
使用 PowerShell cmdlet,你可以輕鬆地在指定目錄中查詢和刪除超過 x
天的檔案。