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

能否使用forfiles命令按修改时间隐藏文件?命令执行异常咨询

解决forfiles按修改时间隐藏文件的问题

没问题,我来帮你排查问题并给出正确的实现方式!

你的命令为什么会隐藏所有文件?

你遇到的问题大概率是以下两个原因之一:

  • 日期格式不匹配系统区域设置:forfiles的/D参数完全依赖系统的日期格式。如果你的系统用的是DD/MM/YYYY(比如中文Windows默认格式),那01/15/2019是无效日期(15月不存在),此时forfiles会直接忽略日期筛选条件,对目录下所有文件执行隐藏命令。
  • 筛选逻辑不符合预期/D +01/15/2019的作用是匹配修改时间晚于或等于2019年1月15日的文件,如果你的所有文件都满足这个时间条件,自然会被全部隐藏。

正确实现按修改时间隐藏文件

用forfiles完全可以实现按修改时间隐藏文件,根据你的需求分两种场景:

场景1:隐藏修改时间晚于/等于指定日期的文件

根据你的系统日期格式选择对应的命令:

  • 若系统用美式格式MM/DD/YYYY
forfiles /P . /C "cmd /c attrib +h @file" /D +01/15/2019
  • 若系统用中式格式DD/MM/YYYY
forfiles /P . /C "cmd /c attrib +h @file" /D +15/01/2019

场景2:隐藏修改时间早于/等于指定日期的文件

只需把+替换为-

  • 美式格式:
forfiles /P . /C "cmd /c attrib +h @file" /D -01/15/2019
  • 中式格式:
forfiles /P . /C "cmd /c attrib +h @file" /D -15/01/2019

关键细节说明

  • 一定要加上@file:在/C的命令字符串里,@file代表当前匹配到的文件名,如果省略它,attrib命令会重复执行导致意外结果。
  • 先验证再执行:不确定筛选结果的话,可以先执行以下命令查看匹配的文件列表:
forfiles /P . /C "cmd /c echo @file @fdate" /D +15/01/2019

这会列出符合条件的文件名和修改日期,确认无误后再替换成隐藏命令。

内容的提问来源于stack exchange,提问作者Amutha Vani Kamaraj

火山引擎 最新活动