使用 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
天的文件。