找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 7336|回复: 13

[文件操作] 求助批处理多个文件名相同末尾带序号建立文件夹并存入文件夹

[复制链接]
发表于 2025-5-15 12:46:45 | 显示全部楼层 |阅读模式
求助各位大佬,如何批量将多个文件前缀文件名相同末尾带序号的-1 -2 -3 ......-5建立一个文件夹并存入文件夹。坛里看了都是批量一个文件存入文件夹的。文件比较多,都有几百个。
我这文件是把1.超过1000页的文件分割成几个文件,2.ocr之后(软件不支持超过1000页的),3.再将ocr之后相同的分割文件合并成一个。

   中国风湿病学  上_10858454_娄玉钤主编_2001_1440-1(OCR).pdf
    中国风湿病学  上_10858454_娄玉钤主编_2001_1440-2(OCR).pdf

    中国风湿病学  下_80404572_娄玉钤主编_2001_4179-1(OCR).pdf
    中国风湿病学  下_80404572_娄玉钤主编_2001_4179-2(OCR).pdf

    中国风湿病学  中_80404571_娄玉钤主编_2001_2914-1(OCR).pdf
    中国风湿病学  中_80404571_娄玉钤主编_2001_2914-2(OCR).pdf
    中国风湿病学  中_80404571_娄玉钤主编_2001_2914-3(OCR).pdf
    中国风湿病学  中_80404571_娄玉钤主编_2001_2914-4(OCR).pdf
    中国风湿病学  中_80404571_娄玉钤主编_2001_2914-5(OCR).pdf
发表于 2025-5-15 13:21:29 | 显示全部楼层
回复 1# gaoyinfei

当前目录中的 '同名组' 的 pdf 文件被移入新建的对应 '同名' 子目录中...

  1. @echo off &for /f "tokens=1-2 delims=-" %%d in ('dir /b/a-d *-*.pdf') do (
  2.   md "%%d" 2>nul
  3.   if exist "%%d-*%%~xd" move /y "%%d-*%%~xd" "%%d")
  4. pause&exit/b
复制代码

评分

参与人数 1技术 +1 收起 理由
gaoyinfei + 1 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2025-5-15 13:54:59 | 显示全部楼层
本帖最后由 gaoyinfei 于 2025-5-15 14:00 编辑
回复  gaoyinfei

当前目录中的 '同名组' 的 pdf 文件被移入新建的对应 '同名' 子目录中...
aloha20200628 发表于 2025-5-15 13:21



    382个文件分别移入了173个文件夹,但是奇怪,有4个文件是分别存入2个文件夹的,文件夹建立了,文件却没有移入。只能手动了。

非常感谢@aloha20200628
 楼主| 发表于 2025-5-15 14:17:14 | 显示全部楼层
回复 2# aloha20200628


    我又把这四个文件名和原来能移入的文件名对照了一下,把文件名修改了下,才可以。
中医针法集锦_10058061_刘冠军等编_1988.10_1066-1(OCR).pdf
  中医针法集锦_10058061_刘冠军等编_1988.10_1066-2(OCR).pdf
  中华医书集成医经类 第1册_13333404_1999.07_981-1(OCR).pdf
  中华医书集成医经类 第1册_13333404_1999.07_981-2(OCR).pdf
要把1998.10_  这个1998后面有个.10这三个要删除掉,就可以成功移入。也不知道是什么原因。
发表于 2025-5-15 15:23:16 | 显示全部楼层
回复 4# gaoyinfei

因为一楼中的 '同名' 定义是 - 字符前的字段是相同的,而有问题的文件名命名格式与此不符...
发表于 2025-5-15 15:37:56 | 显示全部楼层
回复 4# gaoyinfei

2楼代码的两个%%~xd改成%%~xe

评分

参与人数 1技术 +1 收起 理由
gaoyinfei + 1 感谢分享

查看全部评分

 楼主| 发表于 2025-5-15 16:19:21 | 显示全部楼层
回复 5# aloha20200628


    好的,学习一下。以前学了好久也没学会。
 楼主| 发表于 2025-5-15 16:21:07 | 显示全部楼层
回复 6# buyiyang
好的,非常感谢。试了一下,估计文件名不太标准,有两个没移进去,分别用xd和xe建了两个批处理,总归能全部移进去,以后遇到不标准的估计又不行了。
发表于 2025-5-15 19:57:37 | 显示全部楼层
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /a-d "*-*(ocr).pdf"') do (
  4.         set "n=%%~ni"
  5.         setlocal enabledelayedexpansion
  6.         for /f "delims=" %%j in ("!n:-=\!") do (
  7.                 md "!n:-%%~nxj=!" 2>nul
  8.                 move "!n!%%~xi" "!n:-%%~nxj=!"
  9.         )
  10.         endlocal
  11. )
  12. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
gaoyinfei + 1 感谢分享

查看全部评分

 楼主| 发表于 2025-5-15 21:27:55 | 显示全部楼层
本帖最后由 gaoyinfei 于 2025-5-15 22:04 编辑

回复 9# 77七


    试了一下,只能一个文件一个文件夹,我再试下。试了一下,可以移动。非常感谢。第一次不成功的原因应该是有些文件名太过于复杂了。当初也不知是用哪一款分割软件,以及原书文件名有页码那种格式。楼上的两位以及你的都可以用。估计要用规范的文件名。
发表于 2025-5-15 22:18:52 | 显示全部楼层
回复 10# gaoyinfei


   只要是末尾是这种格式, -1(OCR).pdf ,一般都不会有问题,你说的页码是指一些符号吗?试试在第一行后添加一行 chcp 65001 >nul
 楼主| 发表于 2025-5-15 22:26:17 | 显示全部楼层
回复 11# 77七
好的,我加上试试。我说的页码是1066-1前面1066是总页数,-1是分割的第一个文件。一般按道理不会出现这样的排列方式。
发表于 2025-5-16 10:52:35 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-5-16 11:55 编辑

回复 4# gaoyinfei

二楼代码订正如下,可以兼容多种 '同名组' 命名格式(用第一个 - 字符分割之前的 '同名' 字段和之后的 '同组' 字段),四楼的问题也就一并得以解决...

  1. @echo off &for /f "delims=-" %%d in ('dir /b/a-d *-*.pdf') do (
  2.   md "%%d" 2>nul
  3.   if exist "%%d-*.pdf" move /y "%%d-*.pdf" "%%d")
  4. pause&exit/b
复制代码
与以上代码等效的另一版代码如下(虽然还可将首行代码中的 dir 匹配文件类型改为通配符 .*,但会有更多类型的文件被一并处理,可能会与 '分类分名分组' 的要求有所冲突...)

  1. @echo off &for /f "tokens=1* delims=-" %%d in ('dir /b/a-d *-*.pdf') do (
  2.   md "%%d" 2>nul
  3.   if exist "%%d-*%%~xe" move /y "%%d-*%%~xe" "%%d")
  4. pause&exit/b
复制代码
 楼主| 发表于 2025-5-16 11:58:45 | 显示全部楼层
回复 13# aloha20200628


    感谢大佬 ,试了几个文件名略有变化的几个文件,都可以移入同名的文件夹。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:58 , Processed in 0.022490 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表