如何在forfiles命令中配置指定范围的双日期筛选?
用forfiles筛选指定日期范围的文件
要同时满足创建日期晚于2020年1月1日、且早于今日向前推6天两个条件,仅靠forfiles的/D参数无法直接实现,需要在/C指定的执行命令里补充日期判断逻辑。
方法1:纯cmd+forfiles实现
forfiles /P C:\temp /D +01/01/2020 /C "cmd /c powershell $sixDaysAgo=(Get-Date).AddDays(-6); if ([datetime]@fdate -lt $sixDaysAgo) echo @path"
/D +01/01/2020先过滤出创建日期晚于2020年1月1日的文件- 通过powershell计算6天前的日期,再将文件的创建日期(
@fdate)转换为日期类型,与6天前的日期对比,满足条件则输出文件路径
方法2:用PowerShell实现(更简洁直观)
如果允许使用PowerShell,这种方式逻辑更清晰,避免cmd日期处理的繁琐:
Get-ChildItem -Path C:\temp -File | Where-Object { $_.CreationTime -gt '2020-01-01' -and $_.CreationTime -lt (Get-Date).AddDays(-6) } | Select-Object -ExpandProperty FullName
内容的提问来源于stack exchange,提问作者Christian Romero Carrasco
相关产品推荐
相关产品推荐

