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

[文件操作] 批处理如何批量自动合并前缀相似文件夹,保留长名夹?

[复制链接]
发表于 2022-10-22 13:06:28 | 显示全部楼层 |阅读模式
夹冗余问题〓许多夹名前缀相同,如何批量自动剪切短名夹内文件到长名夹中?最后清空所有空文件夹。
【星要出于雅各】◆民24:17,◆太2:2✔
【星要出于雅各】◆民24:17✖
【星要出于雅各】✖
【牧人朝拜】◆路2:15✔
【牧人朝拜】✖
【亚伯拉罕后裔】◆太1:1✔
【亚伯拉罕后裔】✖
。。。。。
发表于 2022-10-22 17:16:40 | 显示全部楼层

  1. @echo off
  2. @rem 保存为ANSI格式
  3. setlocal enabledelayedexpansion
  4. set "Previous_Folder=%ComSpec%"
  5. for /f "delims=" %%a in ('dir/b/s/ad^|sort') do (
  6.         set "Current_folder=%%a"
  7.         call set "dif_str=%%Current_folder:!Previous_Folder!=%%
  8.         if "!dif_str!" neq "%%a" (
  9.                 move /y "!Previous_Folder!\*.*" "%%~a" >nul 2>&1
  10.                 rd /q /s "!Previous_Folder!" >nul 2>&1
  11.         )
  12.         set "Previous_Folder=!Current_folder!"
  13. )
复制代码
 楼主| 发表于 2022-10-22 19:12:21 | 显示全部楼层
回复 2# hfxiang


    感谢答复,代码非常好用!
发表于 2023-2-8 14:21:15 | 显示全部楼层
回复 2# hfxiang


    我实测的情况怎么好像不一样呢? 文件夹全删了.
发表于 2023-2-8 16:45:46 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2023-2-8 17:07 编辑

回复 4# cnnetstar
2楼代码有点狠。以下代码只针对当前文件夹下的文件夹,而对下一层子孙文件夹不起作用,相对而言要安全一些,rd命令的/s参数要慎用:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set Folder=/
  4. for /f "delims=" %%a in ('dir /b /ad^|sort /r') do (
  5.     if "!Folder:%%a=!" neq "!Folder!" (
  6.         move /y "%%a\*.*" "!Folder!"
  7.         rd "%%a" 2>nul
  8.     ) else (
  9.         set Folder=%%a
  10.     )
  11. )
  12. pause
复制代码
删除空文件夹用不带参数的rd命令即可,过度使用参数出问题的可能性会增加。
发表于 2023-2-8 19:03:22 | 显示全部楼层
回复 5# qixiaobin0715


    我试了一哈, 好像没有变化呢.
发表于 2023-2-9 08:12:39 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2023-2-9 09:41 编辑

回复 6# cnnetstar
粗心。那可能是因为你没理解楼主的意思,较长文件夹名的字符要完全包含较短文件夹名的字符。
请仔细看看顶楼的描述。
如无特殊情况,还要养成一种习惯,那就是批处理文件最好保存为ANSI编码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 06:24 , Processed in 0.022075 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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