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

如何使用Powershell脚本筛选文件名日期大于指定值的文件

PowerShell 文件名日期筛选脚本方案

实现逻辑

  • 首先将指定的基准日期转换为DateTime类型便于比较
  • 扫描目标路径下的所有文件,通过正则提取文件名中YYYYMMDD格式的8位日期段
  • 验证提取到的字符串为合法日期后,和基准日期做大小比较,仅保留日期晚于基准的文件

完整可运行脚本

# 配置基准日期
$baseDate = Get-Date "2021/11/28"
# 配置需要扫描的文件所在文件夹路径,修改为你实际的路径即可
$scanPath = "."

Get-ChildItem -Path $scanPath -File | Where-Object {
    # 匹配文件名中的8位连续数字日期
    if ($_.Name -match '\b(\d{8})\b') {
        try {
            $fileDate = [DateTime]::ParseExact($matches[1], "yyyyMMdd", $null)
            return $fileDate -gt $baseDate
        }
        catch {
            # 匹配到的8位数字不是合法日期,直接过滤
            return $false
        }
    }
    # 文件名无符合格式的日期,直接过滤
    return $false
} | ForEach-Object {
    # 输出格式和示例保持一致,带双引号
    "`"$($_.Name)`""
}

适配优化说明

如果你的文件名格式固定为前缀_8位日期_后缀的结构,可以将正则匹配部分替换为字符串截取,运行效率更高:

# 替换Where-Object块内的内容即可
$datePart = $_.Name.Split('_')[1]
try {
    $fileDate = [DateTime]::ParseExact($datePart, "yyyyMMdd", $null)
    return $fileDate -gt $baseDate
}
catch {
    return $false
}

用提供的示例文件名运行上述脚本,输出结果和预期完全一致:

"abc_20211129_efg.*"
"opq_20211130_rst.*"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:15:01