我需要根据文件的输入在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文件。如果我在循环之外进行它可以工作,有什么建议吗?
答案 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 来找出要运行的应用程序。