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

[文件操作] 批量生成若干条.bat命令并在独立的CMD窗口同时执行所有命令

本帖最后由 ansonzfy8848 于 2014-8-7 15:14 编辑

Hello 大侠们,

我有一个JAVA小工具,用来替换一种固定类型文件中的一些字符,命令中我需要手动输入源文件名和要生成的目标文件名,比如。
  1. java -jar -Xms512m -Xmx1024m  convert.jar "false" "FileName01.txt" "FileName01_convt.txt"
复制代码
/* "FileName01.txt" 是源文件名,"FileName01_convt.txt" 是新文件名

麻烦事儿:如果100个文件,写100条命令,痛苦。网上我看到一些变通的方法,比如写一个BAT命令,挨个自动执行,前一个执行完了才能开始后面的,这样太慢,而且有时有些文件处理一半遇到问题,工具就永远挂起不走了:

能否实现:
1. 自动输入源文件名和目标文件名,生成若干条命令(目录文件名可以用“源文件名_convt.txt”形式),
2. 更重要的是每条命令自动打开独立CMD窗口同时批量执行 (这样的用意是,哪个文件转换不下去了,不影响别的任务,同时,我可以看到工具返回的错误提示信息,好去找到并修复源文件)。
3. 每条命令执行完成后,不自动退出窗口,执行命令时能显示所处理的源文件名。
4. 要处理的文件统一全部放在JAVA工具所在目录的子目录里。

多谢多谢帮忙,科技创造生活!

在线等待啊。。

TOP

本帖最后由 CrLf 于 2014-8-7 17:37 编辑

你会后悔同时开 100 个窗口的,电脑差一点系统都可能崩溃
  1. cd /d "JAVA工具所在目录\"
  2. for /f "delims=" %%a in ('@dir /a-d /b /s "*.txt"') do (
  3.         if "%%~dpa" neq "%cd%\" (
  4.         start "正在处理%%~a" cmd /k java -jar -Xms512m -Xmx1024m  convert.jar "false" "%%~fa" "%%~dpna_convt%%~xa"
  5.         )
  6. )
复制代码

TOP

回复 3# CrLf
太棒了,多谢多谢,我试试先。

别担心电脑,VM 一堆")

TOP

你会后悔同时开 100 个窗口的,电脑差一点系统都可能崩溃
CrLf 发表于 2014-8-7 16:09

有一点能否改进一下,目前是读取与JAVA工具同一目录中的TXT文件,能否让工具去读取JAVA工具目录里的子目录下的TXT文件?我想让文件与工具分开,一目了然。谢谢了。。。!!!

TOP

回复 5# ansonzfy8848


    已修改

TOP

回复 6# CrLf

貌似有点问题,提示 "Unable to access the jarfile convert.jar", 请再帮忙看看?

TOP

回复 7# ansonzfy8848


    已修改
    不懂 java.exe 的参数规则,如果还有问题,把  "%%~dpna_convt%%~xa" 改成  "%%~na_convt%%~xa" 再试试

TOP

回复 8# CrLf

大功告成!!一切非常完美,多谢,下次请你喝Beer :)

TOP

回复 4# ansonzfy8848


    跑虚拟机的,这至少两大排的内存条啊。。

TOP

回复 8# CrLf
长官,我今天比较文件发现,所有生成的新文件是同一个文件,也就是说,我转换了比如1,2,3,4,5,等几个文件,生成的文件都是文件2的内容。再帮我看看是代码需要修改吗?谢谢。

急用。

TOP

回复 10# Linuxer

实际上没有那么夸张有数百个文件,一般也不超过50. 在服务器上搭VM。

TOP

返回列表