迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

使用 PowerShell 删除早于 X 天的文件

作者:迹忆客 最近更新:2024/02/01 浏览次数:

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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 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 脚本或函数中访问它们。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便