[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理可以做拆分文件夹吗?

有一堆文件夹
1-2019-JX14-Y-002
1-2019-JX0313-Y-003。。。。有上千个

想把单层文件夹个拆成多层文件夹

未拆前  
       1-2019-JX14-Y-002
        |_1-2019-JX14-Y-002.001.pdf~1-2019-JX14-Y-002.999.pdf
拆分后
       1
        |_2019
           |_JX14
              |_Y
                 |_002
                    |_1-2019-JX14-Y-002.001.pdf~1-2019-JX14-Y-002.999.pdf
求助各侠
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 77七 于 2023-7-19 10:52 编辑
  1. @echo off
  2. for /d %%d in (*-*) do (
  3.         set "str=%%d"
  4.         setlocal enabledelayedexpansion
  5.         robocopy "!str!" "!str:-=\!" /move /e
  6.         endlocal
  7. )
  8. pause
复制代码

使用前先测试!!!
1

评分人数

bat小白,请多指教!谢谢!

TOP

使用前先测试!!!
77七 发表于 2023-7-18 22:44



    robocopy 的 move …… 好像是先复制再删除的,如果要处理的文件量较大,不建议用 robocopy

TOP

本帖最后由 qixiaobin0715 于 2023-7-19 09:31 编辑

运行代码前请备份好源文件,以免发生意外。代码放在主文件夹中:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-5 delims=-" %%i in ('dir /b /ad') do (
  4.     set "NewFolder=%%i\%%j\%%k\%%l\%%m"
  5.     md "!NewFolder!"
  6.     move "%%i-%%j-%%k-%%l-%%m\*.pdf" "!NewFolder!\"
  7.     rd "%%i-%%j-%%k-%%l-%%m"
  8. )
复制代码
1

评分人数

TOP

回复 3# hnfeng


  谢谢老师指点!本来我考虑更多的兼容一些情况,比如文件夹下存在子文件夹等,却没想到robocopy /move 这个是复制再删除,这个就太影响效率了!学习了,以后慎用!
bat小白,请多指教!谢谢!

TOP

回复 5# 77七


    复制再删除是最安全的方式,建议优先选用robocopy方案,由于自带并发操作所以效率也很高。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher


   
谢谢站长指点!robocopy安全、高效,学习了!
bat小白,请多指教!谢谢!

TOP

感谢各位大侠帮忙,两个都好用,谢谢。

TOP

我觉得第一个要好用些,多一个,少一个,都可以不管,实测的。

TOP

本帖最后由 luckcsz 于 2023-8-28 21:40 编辑

回复 4# qixiaobin0715


    文件夹下文件tif格式未跟随最后级文件夹~!
大概是文件夹名称分割-段关系。

TOP

返回列表