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

批量创建同名文件夹并移动对应.zip与.pdf文件的脚本问题求助

批量创建同名文件夹并移动对应.zip与.pdf文件的脚本问题求助

嗨,Steve!我完全懂你的困扰——上千组配对的zip和PDF文件,核心文件名明明一致,却因为下划线和空格的细微差异,导致原来的脚本把它们分到了各自独立的文件夹里,这确实挺闹心的。

先给你拆解下原脚本的问题:它会遍历当前目录里的每一个文件,给每个文件单独创建以其主文件名(不带扩展名)命名的文件夹,再把文件移进去。但你的zip和PDF因为空格/下划线的区别,被识别成了不同的主文件名,自然就生成了两个不相关的文件夹。

针对你的情况,我整理了两个实用方案,你可以根据需求选:


方案1:统一文件名格式后批量处理

这个方案会先把PDF文件名里的空格替换成下划线,让它和对应zip的主文件名完全对齐,之后再创建文件夹并移动文件。好处是逻辑简单,后续文件管理也更统一:

@echo off
rem 启用延迟变量扩展,支持字符串替换操作
setlocal enabledelayedexpansion

rem 第一步:将所有PDF文件名中的空格替换为下划线,和zip命名统一
for %%F in (*.pdf) do (
    set "old_pdf_name=%%~nF"
    set "new_pdf_name=!old_pdf_name: =_!"
    rem 仅当文件名需要修改时执行重命名,避免无意义操作
    if not "!old_pdf_name!"=="!new_pdf_name!" (
        ren "%%F" "!new_pdf_name!.pdf"
    )
)

rem 第二步:遍历所有zip文件,创建对应文件夹并移动配对文件
for %%F in (*.zip) do (
    set "folder_name=%%~nF"
    rem 创建文件夹,忽略已存在的错误提示
    md "!folder_name!" 2>nul
    rem 移动zip文件到目标文件夹
    move "%%F" "!folder_name!" >nul
    rem 移动对应PDF文件到目标文件夹
    move "!folder_name!.pdf" "!folder_name!" >nul
)

endlocal
echo 处理完成!

方案2:不修改原文件名,直接匹配移动

如果你不想改动原文件的命名,可以用这个方案——脚本会自动把zip文件名里的下划线替换成空格,去匹配对应的PDF文件,然后用zip的主文件名创建文件夹,把两个文件都移进去:

@echo off
setlocal enabledelayedexpansion

for %%F in (*.zip) do (
    rem 获取zip文件的主文件名(不带.zip扩展名)
    set "zip_base=%%~nF"
    rem 把zip文件名中的下划线替换为空格,生成对应的PDF主文件名
    set "pdf_base=!zip_base:_= !"
    rem 用zip的主文件名作为文件夹名称
    set "target_folder=!zip_base!"

    rem 创建目标文件夹(已存在则忽略错误)
    md "!target_folder!" 2>nul

    rem 移动当前zip文件到文件夹
    move "%%F" "!target_folder!" >nul

    rem 检查对应的PDF文件是否存在,存在则移动
    if exist "!pdf_base!.pdf" (
        move "!pdf_base!.pdf" "!target_folder!" >nul
        echo 已处理:!target_folder!
    ) else (
        echo 警告:未找到与【!zip_base!.zip】对应的PDF文件
    )
)

endlocal
echo 所有匹配文件处理完成!

小提醒

  1. 建议先找几组测试文件放到单独文件夹里试跑脚本,避免误操作;
  2. 脚本里的>nul是用来屏蔽不必要的命令输出,让过程更简洁;2>nul是屏蔽文件夹已存在这类的错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 10:40:32