You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用批处理文件删除60天前的文件?现有PowerShell脚本无效求修正

解决删除指定文件夹60天前文件的问题

一、PowerShell脚本修正方案

你的原脚本逻辑本身没问题,但可能存在几个导致执行无效的细节问题,对应修正如下:

  1. 未覆盖子文件夹文件:如果需要删除目标文件夹下子目录中的旧文件,需添加-Recurse参数
  2. 缺少执行前验证:建议先通过-WhatIf参数预览待删除文件,确认匹配范围无误后再移除该参数执行实际删除
  3. 权限/文件占用处理:若文件被占用或无操作权限,-Force可能无法强制删除,可保留参数同时先排查权限问题

修正后的脚本:

$source = "C:\Users\CC\Documents\0Temp"
$maxAge = (Get-Date).AddDays(-60)

# 先预览要删除的文件,确认后去掉-WhatIf执行真实删除
Get-ChildItem $source -File -Recurse | Where-Object { $_.LastWriteTime -lt $maxAge } | Remove-Item -Force -WhatIf

如果不需要处理子文件夹,去掉-Recurse即可;若想按文件创建时间判断,将LastWriteTime替换为CreationTime。

二、批处理(.bat)实现方式

若你更倾向于原生批处理文件,可使用Windows自带的forfiles命令,无需依赖PowerShell:

@echo off
set "source=C:\Users\CC\Documents\0Temp"
:: 预览模式:将del @path /q替换为echo @path,查看待删除文件路径
:: 执行模式:使用下方命令直接删除
forfiles /p "%source%" /s /m *.* /d -60 /c "cmd /c del @path /q"

参数说明:

  • /p "%source%":指定目标文件夹路径
  • /s:遍历所有子文件夹(无需则移除)
  • /m *.*:匹配所有类型文件
  • /d -60:筛选60天前的文件
  • /c "cmd /c del @path /q":执行删除命令,/q为静默模式不弹出确认提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 07:14:57