标题: [文件操作] 批量转换文件如何在命令窗口中显示正在处理的文件名 [打印本页]
作者: ansonzfy8848 时间: 2014-8-19 16:16 标题: 批量转换文件如何在命令窗口中显示正在处理的文件名
使用的命令:- for /R . %%i in (*.xml) do (java -jar -Xms512m -Xmx1024m convert.jar "false" "%%i" "%%~dpni_cleaned%%~xi")
- pause
复制代码
功能:同一窗口中依次自动执行若干个文件转换。
期望:希望在转换每一个文件时能在窗口中看到它正在转换哪个文件,如何优化这个命令呢?比如下面杜撰的效果:- Converting ...
- MyFileName_xx1.xml
- There are totally 1172 entries.
复制代码
或者:- File: MyFileName_xx1.xml
- Converting ...
- There are totally 1172 entries.
复制代码
请多指教啊!
作者: DAIC 时间: 2014-8-19 16:24
- @echo off
- for /r %%i in (*.xml) do (
- echo %%i
- java -jar -Xms512m -Xmx1024m convert.jar "false" "%%i" "%%~dpni_cleaned%%~xi"
- )
- pause
复制代码
作者: CrLf 时间: 2014-8-19 16:29
个人更偏爱用 title %%i 修改窗口标题,这样不会和其他输出混在一起
作者: ansonzfy8848 时间: 2014-8-19 16:47
回复 2# DAIC
太给力了,多谢多谢!
作者: ansonzfy8848 时间: 2014-8-19 17:15
回复 3# CrLf
这种方法不错,不过在这个用例中,显示在窗口里更方便些,可以回头看哪个文件转换报错。
另外,咱们能否讨论一下这个之前你帮我写的打开不同窗口同时进行批量处理的命令,这个运行的时候有些文件要报错,实际上分别单转的时候是不报错的,因此说明不是源文件问题,是转换后的过程有问题:- @echo off
- for /r %%i in (*.xml) do (
- start "转换 %%~i" cmd /k java -jar -Xms512m -Xmx1024m convert.jar "false" "%%i" "%%~dpni_cleaned%%~xi"
- )
- pause
复制代码
我看错误有可能是因为生成临时文件时彼此冲突,因为有些文件太小了,转换过程都很快,同时生成新文件 (我想当然是这样:)),也许在这个命令里放一个参数让执行每个文件的时候都比前一文件开始晚2秒,或者各自生成不一样的临时文件名(目前貌似都是temp.xml)也许就不报错了?还是说,这事得改JAVA工具源码本身才能解决?
作者: CrLf 时间: 2014-8-19 17:22
延时两秒可以加一行复制代码
另外,突然发现一个隐患,应该把- for /r %%i in (*.xml) do (
复制代码
改成- for /f "delims=" %%i in ('dir /s /a-d /b *.xml') do (
复制代码
作者: ansonzfy8848 时间: 2014-8-19 18:12
回复 6# CrLf
Done,这次完美解决,谢谢!
作者: Linuxer 时间: 2014-8-19 21:55
回复 3# CrLf
哈哈,,多看帖就是有好处,,又学一招小技巧,,,
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |