标题: [文件操作] [已解决]批处理可以做拆分文件夹吗? [打印本页]
作者: tttoi2000 时间: 2023-7-18 21:42 标题: [已解决]批处理可以做拆分文件夹吗?
有一堆文件夹
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
求助各侠
作者: 77七 时间: 2023-7-18 22:44
本帖最后由 77七 于 2023-7-19 10:52 编辑
- @echo off
- for /d %%d in (*-*) do (
- set "str=%%d"
- setlocal enabledelayedexpansion
- robocopy "!str!" "!str:-=\!" /move /e
- endlocal
- )
- pause
复制代码
使用前先测试!!!
作者: hnfeng 时间: 2023-7-19 08:28
使用前先测试!!!
77七 发表于 2023-7-18 22:44
robocopy 的 move …… 好像是先复制再删除的,如果要处理的文件量较大,不建议用 robocopy
作者: qixiaobin0715 时间: 2023-7-19 08:43
本帖最后由 qixiaobin0715 于 2023-7-19 09:31 编辑
运行代码前请备份好源文件,以免发生意外。代码放在主文件夹中:- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1-5 delims=-" %%i in ('dir /b /ad') do (
- set "NewFolder=%%i\%%j\%%k\%%l\%%m"
- md "!NewFolder!"
- move "%%i-%%j-%%k-%%l-%%m\*.pdf" "!NewFolder!\"
- rd "%%i-%%j-%%k-%%l-%%m"
- )
复制代码
作者: 77七 时间: 2023-7-19 09:32
回复 3# hnfeng
谢谢老师指点!本来我考虑更多的兼容一些情况,比如文件夹下存在子文件夹等,却没想到robocopy /move 这个是复制再删除,这个就太影响效率了!学习了,以后慎用!
作者: Batcher 时间: 2023-7-19 10:02
回复 5# 77七
复制再删除是最安全的方式,建议优先选用robocopy方案,由于自带并发操作所以效率也很高。
作者: 77七 时间: 2023-7-19 10:51
回复 6# Batcher
谢谢站长指点!robocopy安全、高效,学习了!
作者: tttoi2000 时间: 2023-7-19 22:13
感谢各位大侠帮忙,两个都好用,谢谢。
作者: tttoi2000 时间: 2023-7-21 22:02
我觉得第一个要好用些,多一个,少一个,都可以不管,实测的。
作者: luckcsz 时间: 2023-8-28 21:33
本帖最后由 luckcsz 于 2023-8-28 21:40 编辑
回复 4# qixiaobin0715
文件夹下文件tif格式未跟随最后级文件夹~!
大概是文件夹名称分割-段关系。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |