You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在PowerShell批量删除指定文件时记录每个文件的删除日期与时间?

实现带删除时间的文件删除脚本

当然可以轻松实现这个需求!你的原脚本直接通过管道批量删除文件,-Verbose只能显示基础操作信息,但不会包含具体的删除时间。我们只需要调整脚本逻辑,逐个处理文件并主动记录当前时间即可。

这里提供两种实用的修改方案:

方案1:控制台输出带时间的删除记录

这个方案会在每个文件删除后,清晰显示文件路径和对应的删除时间,直观易懂:

$targetFolder = "D:\"
$fileList = "C:\DeleteList.txt"

# 先获取所有需要删除的文件列表
$filesToDelete = Get-ChildItem -Path "$targetFolder\*" -Recurse -Include @(Get-Content $fileList)

# 逐个处理文件
foreach ($file in $filesToDelete) {
    # 获取当前格式化的日期时间(格式可根据需求自定义)
    $deleteTimestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss.fff"
    # 执行删除操作
    Remove-Item -Path $file.FullName -Verbose
    # 输出带时间的删除确认信息
    Write-Host "✅ 文件 [$($file.FullName)] 已在 $deleteTimestamp 成功删除" -ForegroundColor Green
}

方案2:将时间整合到Verbose日志中

如果你更倾向于用Verbose日志统一管理操作信息,可以把时间嵌入到Verbose消息里:

$targetFolder = "D:\"
$fileList = "C:\DeleteList.txt"

Get-ChildItem -Path "$targetFolder\*" -Recurse -Include @(Get-Content $fileList) | ForEach-Object {
    $deleteTimestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    # 先输出带时间的准备删除提示
    Write-Verbose "[$deleteTimestamp] 开始删除文件: $($_.FullName)" -Verbose
    # 执行删除
    Remove-Item -Path $_.FullName -Verbose
}

额外技巧:保存日志到文件

如果需要长期保留删除记录,可以把输出重定向到日志文件。比如修改方案1的最后一行:

Write-Output "文件 [$($file.FullName)] 已在 $deleteTimestamp 成功删除" >> "C:\FileDeleteLog.txt"

这样每次运行脚本,删除记录都会追加到指定的日志文件中,方便后续追溯。

内容的提问来源于stack exchange,提问作者simonc

火山引擎 最新活动