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

[文件操作] 批量转换文件如何在命令窗口中显示正在处理的文件名

使用的命令:
  1. for /R . %%i in (*.xml) do (java -jar -Xms512m -Xmx1024m  convert.jar "false" "%%i" "%%~dpni_cleaned%%~xi")
  2. pause
复制代码
功能:同一窗口中依次自动执行若干个文件转换。
期望:希望在转换每一个文件时能在窗口中看到它正在转换哪个文件,如何优化这个命令呢?比如下面杜撰的效果:
  1. Converting ...
  2. MyFileName_xx1.xml
  3. There are totally 1172 entries.
复制代码
或者:
  1. File: MyFileName_xx1.xml
  2. Converting ...
  3. There are totally 1172 entries.
复制代码
请多指教啊!

  1. @echo off
  2. for /r %%i in (*.xml) do (
  3.     echo %%i
  4.     java -jar -Xms512m -Xmx1024m convert.jar "false" "%%i" "%%~dpni_cleaned%%~xi"
  5. )
  6. pause
复制代码

TOP

个人更偏爱用 title %%i 修改窗口标题,这样不会和其他输出混在一起

TOP

回复 2# DAIC
太给力了,多谢多谢!

TOP

回复 3# CrLf
这种方法不错,不过在这个用例中,显示在窗口里更方便些,可以回头看哪个文件转换报错。

另外,咱们能否讨论一下这个之前你帮我写的打开不同窗口同时进行批量处理的命令,这个运行的时候有些文件要报错,实际上分别单转的时候是不报错的,因此说明不是源文件问题,是转换后的过程有问题:
  1. @echo off
  2. for /r %%i in (*.xml) do (
  3. start "转换 %%~i" cmd /k java -jar -Xms512m -Xmx1024m convert.jar "false" "%%i" "%%~dpni_cleaned%%~xi"
  4. )
  5. pause
复制代码
我看错误有可能是因为生成临时文件时彼此冲突,因为有些文件太小了,转换过程都很快,同时生成新文件 (我想当然是这样:)),也许在这个命令里放一个参数让执行每个文件的时候都比前一文件开始晚2秒,或者各自生成不一样的临时文件名(目前貌似都是temp.xml)也许就不报错了?还是说,这事得改JAVA工具源码本身才能解决?

TOP

延时两秒可以加一行
  1. ping /n 3 127.1 >nul
复制代码
另外,突然发现一个隐患,应该把
  1. for /r %%i in (*.xml) do (
复制代码
改成
  1. for /f "delims=" %%i in ('dir /s /a-d /b *.xml') do (
复制代码

TOP

回复 6# CrLf

Done,这次完美解决,谢谢!

TOP

回复 3# CrLf


    哈哈,,多看帖就是有好处,,又学一招小技巧,,,

TOP

返回列表