You need to enable JavaScript to run this app. PowerShell删除30天前文件时日志不记录被删文件问题排查
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell删除30天前文件时日志不记录被删文件问题排查

问题原因

你当前脚本日志无法记录删除文件的核心原因有两个:

  1. Remove-Item 命令默认没有标准输出,你添加的-Verbose参数输出属于Verbose流,不会直接进入管道传递给Write-MyLog,因此日志无法捕获到删除信息
  2. 你没有提前收集待删除的文件列表,也没有配置删除命令返回操作对象,自然无法输出删除记录

调整方案

按如下代码修改即可实现全场景日志记录:
首先补全你遗漏的Write-MyLog函数声明,再调整删除逻辑:

Function Write-MyLog {
    [Cmdletbinding()]
    param(
        [Parameter()]$LogPath = 'C:\Admin\scripts\Clean_Folder\Log\log.txt',
        [Parameter(ValueFromPipeline)]$Message
    )
    process {
        $timeStampedMessage = "[$(Get-Date -Format 's')] $Message"
        $timeStampedMessage | Out-File -FilePath $LogPath -Append
    }
}

Function Remove-FilesCreatedBeforeDate {
    [Cmdletbinding()]
    param(
        [Parameter()]$Path = '\\servername\path\',
        [Parameter()]$Date = $(Get-Date).AddDays(-30)
    )
    process {
        if(-not (Test-Path $Path -IsValid)) {
            "路径无效:$Path" | Write-MyLog
            return
        }
    
        "路径校验通过:$Path,开始执行清理" | Write-MyLog
    
        try {
            # 先拉取所有符合删除条件的文件/文件夹
            $toDelete = Get-ChildItem -Path $Path -Recurse | Where-Object { $_.LastWriteTime -lt $Date }
            if ($toDelete.Count -eq 0) {
                "未找到30天以上的旧文件,无需执行清理" | Write-MyLog
                return
            }
            "共匹配到$($toDelete.Count)个待清理对象,开始执行删除:" | Write-MyLog
            # 删除时加-PassThru返回被删除的对象,遍历写入日志
            $toDelete | Remove-Item -Recurse -Force -PassThru | ForEach-Object {
                "已删除:$($_.FullName)" | Write-MyLog
            }
            "清理任务执行完成" | Write-MyLog
        }
        catch {
            "删除操作异常:$($_.Exception.Message)" | Write-MyLog
        }
       
    }
}

# 执行清理任务
Remove-FilesCreatedBeforeDate

核心修改点

  • 补全了Write-MyLog的函数声明,避免脚本运行报错
  • 提前拉取待删除列表,先统计数量写入日志,覆盖无文件可删的场景
  • 给Remove-Item添加-PassThru参数,让命令返回已删除的对象,遍历后把文件全路径写入日志
  • 补充了任务完成、异常场景的日志记录,覆盖全运行流程

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 06:54:01