使用 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
天的文件。
相关文章
通过 PowerShell 命令在任务计划程序中运行计划任务
发布时间:2024/02/06 浏览次数:133 分类:编程语言
-
本教程将教你使用 PowerShell 命令在任务计划程序中启动计划任务。
使用 PowerShell 下载和安装适用于 Windows 的 Git 客户端
发布时间:2024/02/06 浏览次数:125 分类:编程语言
-
本教程将教你使用 PowerShell 下载和安装适用于 Windows 的 Git 客户端。
在 PowerShell 中运行 SQL 查询
发布时间:2024/02/06 浏览次数:160 分类:编程语言
-
本文介绍如何调用 SQL 服务器的命令、执行 CRUD 操作以及查询 SQL 的其他替代方法。
使用 PowerShell 检查 SQL Server 版本
发布时间:2024/02/06 浏览次数:147 分类:编程语言
-
本教程将教你使用 PowerShell 检查 SQL Server 版本。检查程序的版本是你可以在 PowerShell 中执行的常见操作之一。
使用 PowerShell 获取磁盘空间信息
发布时间:2024/02/06 浏览次数:189 分类:编程语言
-
本文讨论了几个命令,这些命令将导出我们所有系统驱动器的信息,并了解如何使用 PowerShell 确定我们机器中剩余的驱动器空间。
在 PowerShell 中将项目添加到数组
发布时间:2024/02/06 浏览次数:153 分类:编程语言
-
本教程将教你在 PowerShell 中将项目添加到数组中。本教程将介绍在 PowerShell 中向数组添加项目。使用 += 将项目添加到 PowerShell 中的数组
在 PowerShell 中访问 $args 数组
发布时间:2024/02/06 浏览次数:155 分类:编程语言
-
本文将介绍 PowerShell 中的 $args 数组和 $args[] 函数。$args 是一个数组,因此你可以传递多个值并在 PowerShell 脚本或函数中访问它们。
在 PowerShell 中选择数组的所有对象上的一个属性的值
发布时间:2024/02/06 浏览次数:121 分类:编程语言
-
本教程将教你在 PowerShell 中为数组的所有对象选择一个属性的值。数组是值或对象的集合。大多数编程语言都将数组作为基本特征。