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

编写批处理脚本提取各子文件夹最新PDF文件信息生成CSV

解决方案:批量提取各子目录最新PDF文件并生成CSV

直接使用以下批处理脚本即可实现需求,它会递归遍历指定目录下的所有子文件夹,每个文件夹仅保留最新修改的PDF文件,并将结果写入CSV:

@echo off
setlocal enabledelayedexpansion

:: 写入CSV表头
echo "文件路径","文件名","修改日期" > LatestFiles.csv

:: 递归遍历所有子目录
for /f "delims=" %%d in ('dir /s /b /ad') do (
    :: 按修改日期倒序取当前目录下的第一个PDF文件(最新的)
    for /f "delims=" %%f in ('dir "%%d\*.pdf" /b /a-d /o-d /t:w 2^>nul') do (
        :: 提取文件信息
        set "fullPath=%%~dpnxf"
        set "fileName=%%~nf%%~xf"
        set "modDate=%%~tf"
        
        :: 追加到CSV
        echo "!fullPath!","!fileName!","!modDate!" >> LatestFiles.csv
        
        :: 仅保留第一个结果,跳出内层循环
        goto :nextDir
    )
    :nextDir
)

echo 处理完成,结果文件:LatestFiles.csv
type LatestFiles.csv
endlocal

关键逻辑说明

  • 延迟变量扩展:setlocal enabledelayedexpansion确保循环内部能实时读取变量值,避免变量替换错误。
  • 目录遍历:dir /s /b /ad递归获取所有子目录路径,不包含文件。
  • 最新文件筛选:dir "%%d\*.pdf" /b /a-d /o-d /t:w指定按修改日期(/t:w)倒序(/o-d)排列,只取第一个结果就是该目录下最新的PDF;2^>nul用来忽略无PDF文件目录的错误提示。
  • CSV格式化:提前写入表头,每个文件的路径、文件名、修改日期用双引号包裹,符合CSV规范。

原脚本问题分析

  • 第一段脚本仅处理当前目录,未递归遍历子文件夹,且变量赋值与输出语句语法错误,无法正确获取最新文件。
  • 第二段脚本会导出所有PDF文件,没有按目录筛选每个文件夹的最新文件,不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:39:25