簡體   English   中英

從批處理腳本Windows 8運行帶有參數的jar文件

[英]Running jar file with argument from batch script windows 8

我正在嘗試通過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>

我在批處理腳本中做錯了什么?

使用批處理代碼

@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%之間或第一行=2015-07-07之間似乎有一個字符被cmd解釋為換行符.exe 它可以是單個回車符或單個換行符。 cmd.exe將NULL(值為0的字節)解釋為字符串的末尾,這也意味着行尾。

批處理文件應具有DOS / Windows行終止符,即回車+換行符。 僅換行(UNIX)或僅回車(舊MAC)不適用於批處理文件。

批處理文件必須是ASCII / ANSI(OEM)編碼的文件,即每個字符1個字節。 確保在使用“ 另存為”命令保存批處理文件時,未在使用的文本編輯器中選擇UTF-8或Unicode(UTF-16 Little / Big Endian)。 如今,許多文本編輯器默認使用UTF-8作為cmd.exe不支持的編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM