标题: [文件操作] 怎样对文件名过滤,拖动到批处理后分类移动? [打印本页]
作者: 轻舞飞扬 时间: 2012-7-5 22:11 标题: 怎样对文件名过滤,拖动到批处理后分类移动?
相当于一个过滤归类器,要拖动,是因为文件夹内并不是所有的文件都需要进行操作
我自己做了个,代码支持拖动,但是
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
复制代码
作者: apang 时间: 2012-7-6 00:57
1.因为if %errorlevel%==0 (echo %~n1已归入...)本身带有括号,如果%~n1中也包含括号,就会出现语法错误。将%~n1用引号包围就可以了。
3.如果%1为空值,if not exist %1 goto cao这句变成:如果不存在goto,执行cao,哈哈。。。
改成if "%~1"=="" goto cao就可以了。
作者: 轻舞飞扬 时间: 2012-7-6 08:21
闪断了我就没法看到过程了,就忽视了
看来还是需要把闪断时的变量代入分析下啊
╮(╯▽╰)╭
谢大神
回复 2# apang
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |