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

Windows CMD下按标识符批量查找、分组并移动PDF文件的实现方案

Windows CMD下按标识符批量查找、分组并移动PDF文件的实现方案

嘿,这个需求太典型了——面对大量文件和多标识符的分类场景,用Windows CMD批处理完全能高效搞定,不用装额外工具。我给你整理了一套可直接用的方案,咱们一步步来:

第一步:准备标识符列表

先把你那1000多个标识符整理成一个纯文本文件,比如命名为ids.txt,每行放一个标识符,格式就像这样:

10000
10001
AB-2023-001
XYZ_789

注意:如果标识符里包含空格、&这类特殊字符,直接整行写进去就行,不用加引号。

第二步:编写批量处理脚本

新建一个文本文件,把下面的代码复制进去,然后改后缀为.bat(比如sort_pdfs.bat):

@echo off
setlocal enabledelayedexpansion

:: 配置参数——根据你的实际情况修改下面3行
set "id_list=ids.txt"          :: 你的标识符列表文件路径
set "source_dir=."             :: 要搜索的源文件夹(.代表当前文件夹)
set "target_root=.\sorted_pdfs":: 存放分类结果的根文件夹

:: 创建目标根文件夹(如果已存在就忽略报错)
mkdir "%target_root%" 2>nul

:: 循环遍历每个标识符
for /f "delims=" %%i in (%id_list%) do (
    set "current_id=%%i"
    :: 创建当前标识符对应的子文件夹
    set "target_dir=%target_root%\!current_id!"
    mkdir "!target_dir!" 2>nul
    
    echo 正在处理标识符:!current_id!
    :: 递归搜索源文件夹下所有PDF文件
    for /r "%source_dir%" %%f in (*.pdf) do (
        :: 检查当前PDF文件名是否包含目标标识符(不区分大小写)
        echo "%%~nf" | findstr /i "!current_id!" >nul
        if !errorlevel! equ 0 (
            :: 移动文件到对应文件夹
            move "%%f" "!target_dir!"
            echo 已移动:"%%~nxf" → "!target_dir!"
        )
    )
)

echo 所有文件分类完成!
pause

第三步:关键细节说明

  • 参数配置:开头的3个set命令一定要根据你的实际路径修改,比如源文件夹如果是D:\all_pdfs,就把source_dir改成这个路径。
  • 大小写设置:代码里的findstr /i是不区分大小写匹配标识符,如果需要严格区分大小写,把/i去掉就行。
  • 安全测试:第一次运行前,可以把move "%%f" "!target_dir!"改成echo move "%%f" "!target_dir!",这样只会打印要移动的文件,不会真的移动,确认没问题后再改回move。
  • 特殊字符兼容:脚本已经处理了标识符包含空格、&等特殊字符的情况,只要ids.txt里每行是完整的标识符就行。

运行方式

把sort_pdfs.bat和ids.txt放在同一个文件夹(或者按配置修改路径),双击运行脚本就可以了,它会自动完成所有搜索、建文件夹、移动文件的操作。

备注:内容来源于stack exchange,提问作者Dagef

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:09:41