相当于一个过滤归类器,要拖动,是因为文件夹内并不是所有的文件都需要进行操作
我自己做了个,代码支持拖动,但是
1.在处理括号时,批处理闪断
我已经加了对括号的处理了
2.数量多时,好像也不行,要分多次操作,而最终结果是:多次拖动每个文件都能正确分类
我就纳闷什么原因导致中间中断,代码已经检查好长时间了
3.在运行结束至最后空内容时,跳转标签“cao”总是提示不是内部命令,换别的标签也是
倒~~~~~~
特此求助大神相助- @echo off
-
- :sub
- if not exist %1 goto cao
- set str=%~n1
- set str=%str:(=%
- set str=%str:)=%
- cd /d %~dp0
- cd..
- set "k=%cd%"
-
- ::判断
- (echo %str%|findstr /c:"建筑")||(echo %str%|findstr /c:"土建")
- if %errorlevel%==0 goto construction
- echo %str%|findstr /c:"总图"
- if %errorlevel%==0 goto general
- echo %str%|findstr /c:"管道"
- if %errorlevel%==0 goto pipe
- echo %str%|findstr /c:"设备"
- if %errorlevel%==0 goto equipment
- (echo %str%|findstr /c:"工艺")||(echo %str%|findstr /c:"流程")
- if %errorlevel%==0 goto process
- goto failure
- :construction
- move %1 "%k%\土建\"
- if %errorlevel%==0 (echo %~n1已归入 ^<土建^> 文件夹>>move_log.txt&shift/1 &goto sub)
- :general
- move %1 "%k%\总图\"
- if %errorlevel%==0 (echo %~n1已归入 ^<总图^> 文件夹>>move_log.txt&shift/1 &goto sub)
- :process
- move %1 "%k%\工艺流程图\"
- if %errorlevel%==0 (echo %~n1已归入 ^<工艺流程图^> 文件夹>>move_log.txt&shift/1 &goto sub)
- :equipment
- move %1 "%k%\设备\"
- if %errorlevel%==0 (echo %~n1已归入 ^<设备^> 文件夹>>move_log.txt&shift/1 &goto sub)
- :pipe
- move %1 "%k%\管道\"
- if %errorlevel%==0 (echo %~n1已归入 ^<管道^> 文件夹>>move_log.txt&shift/1 &goto sub)
- :failure
- echo 未成功归类 %~n1
- shift/1
- goto sub
- :cao
- echo 归档结束
- pause
复制代码 列出部分文件吧:- F:\批处理\最新资料 的目录
- tmp.txt
- 20120703消毒剂分厂车间.dwg
- 手动文档归类.cmd
- 批量-自动文档归类.cmd
- 自动文档归类.cmd
- 20120703总图(REV0).dwg
- 20120619总图(次钠搬迁).dwg
- 土建图0629.dwg
- 20120627消毒剂分厂车间(建筑图).dwg
- 泵机土建条件图.dwg
- 土建图0618.dwg
- 土建图0620.dwg
- 搬迁项目设备一览表.doc
- 20120629H-11050-4-1~12 设备平立面布置图.dwg
- 流程设备888数量.txt
- 设备平面布置图.dwg
- 管道平面布置图0618.dwg
- 流程图初版.dwg
- 20120629H-12030-3- 带控制点工艺流程图.dwg
复制代码
|