从批处理脚本窗口8运行带有参数的jar文件

时间:2015-01-17 11:29:39

标签: java batch-file windows-8 cmd windows-8.1

我正在尝试通过Windows 8中的批处理脚本运行带有参数的.jar文件。

我的批处理文件(run.bat)具有以下内容:

set d=2015-07-07
java -jar my.jar %d%

但是当我执行run.bat时,我得到以下内容:

C:\Users\user\Desktop\Test>run.bat

C:\Users\user\Desktop\Test>set d=2015-07-07

C:\Users\user\Desktop\Test>java -jar my.jar

C:\Users\user\Desktop\Test>2015-07-07
'2015-07-07' is not recognized as an internal or external command,
operable program or batch file.

如何与参数一起执行整个命令?

当我通过命令行运行没有批处理脚本时,它可以工作:

C:\Users\user\Desktop\Test>java -jar my.jar 2015-07-07
C:\Users\user\Desktop\Test>

我在批处理脚本中做错了什么?

1 个答案:

答案 0 :(得分:0)

使用批次代码

@echo off
set "DateOption=2015-07-07"
java.exe -jar my.jar %DateOption%
set "DateOption="

或者甚至更好

@echo off
set "DateOption=2015-07-07"
"%JAVA_HOME%\bin\java.exe" -jar my.jar %DateOption%
set "DateOption="

根据运行批处理文件时 cmd.exe 输出的命令,看起来第二行中my.jar%d%之间或{=之间有一个字符第一行中的1}}和2015-07-07 cmd.exe 解释为换行符。它可以是单个回车或单个换行。并且NULL(字节值为0)被 cmd.exe 解释为字符串的结尾,这也意味着行尾。

批处理文件应具有DOS / Windows行终止符,即回车符+换行符。仅限换行(UNIX)或仅回车(旧MAC)不适合批处理文件。

批处理文件必须是ASCII / ANSI(OEM)编码文件,即每个字符1个字节。使用命令另存为确保在使用的文本编辑器中未选择UTF-8或Unicode(UTF-16 Little / Big Endian)来保存批处理文件。默认情况下,许多文本编辑器现在使用UTF-8作为 cmd.exe 不支持的编码。

相关问题