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

遍历子目录时快速获取其最后修改日期的批处理实现方法

快速获取子目录完整路径与最后修改日期的方法

批处理原生高效方案

直接调整dir命令的输出格式,一次遍历就能拿到所有所需信息,完全避免forfiles反复启动进程带来的性能损耗:

@echo off
setlocal enabledelayedexpansion

set "some_path=C:\Your\Target\Directory"

:: 遍历目标目录下的所有子目录,输出最后修改时间与路径
for /f "skip=5 tokens=1,2,3*" %%i in ('dir "!some_path!" /s /a:d /tw /n') do (
    :: 跳过dir输出末尾的汇总行
    if not "%%l"=="" (
        set "dir_fullpath=!some_path!\%%l"
        :: 验证路径有效性,避免解析错误
        if exist "!dir_fullpath!" (
            echo 目录: "!dir_fullpath!" 最后修改时间: %%i %%j
            :: 如需保存到文件,添加 >> dir_modified_log.txt 即可
        )
    )
)
endlocal

关键参数说明

  • /s:递归遍历目标目录下的所有层级子目录
  • /a:d:仅筛选目录类型,排除普通文件
  • /tw:指定显示最后写入(修改)时间,可按需替换:
    • /tc:显示目录创建时间
    • /ta:显示目录最后访问时间
  • /n:采用长文件名格式输出,完美兼容带空格的路径
  • skip=5:跳过dir命令输出的前5行标题与分隔线内容
  • tokens=1,2,3*:拆分输出内容,分别提取日期、时间、完整目录名(*用于捕获带空格的路径剩余部分)

PowerShell方案(简洁高效)

若环境允许使用PowerShell,代码逻辑更直观,执行效率也更高:

$targetPath = "C:\Your\Target\Directory"
# 遍历子目录并输出完整路径与最后修改时间
Get-ChildItem -Path $targetPath -Directory -Recurse | Select-Object FullName, LastWriteTime
# 如需保存到文件,追加 | Out-File -FilePath "dir_modified_dates.txt" -Encoding UTF8

说明

  • -Directory:仅筛选目录项
  • -Recurse:递归遍历所有子目录
  • LastWriteTime直接对应目录的最后修改时间,无需手动解析字符串,准确率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:47:24