在bat文件中执行java jar文件for循环

时间:2015-04-21 10:57:59

标签: windows batch-file

我需要根据文件的输入在for循环中的bat文件中运行java jar文件,文件中的每一行都包含一个参数:

SET jar-path="C:\\tools\\myJar.jar"
SET out-path=C:\tmp\out
SET args-file=C:\data\args.txt

for /f "usebackq" %%a in ("%args-file%") do (
    java -jar %jar-path% %%a %out-path%
    :: start /wait java -jar %jar-path% %%a %out-path%
)

其中args.txt包含:

a
b
c

但循环只迭代3次而不运行jar文件。如果我在循环之外进行它可以工作,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如何使用以下批处理代码:

set "jar-path=C:\tools\myJar.jar"
set "out-path=C:\tmp\out"
set "args-file=C:\data\args.txt"

for /F "usebackq delims=" %%a in ("%args-file%") do (
    "java.exe" -jar "%jar-path%" %%a "%out-path%"
)

在将字符串赋值给环境变量时使用双引号会产生很大的不同,例如,请参阅Assign string values with space to environment variables right以获取解释。

如果可能的话,最好指定java.exe完整路径,因为批处理文件总是在同一台计算机上使用。在批处理文件中,应该避免命令行解释器必须使用环境变量 PATHEXT PATH 来找出要运行的应用程序。