2015-01-17 2 views
0

Я пытаюсь запустить мой .jar файл с аргументами через пакетный скрипт в Windows 8.Запуск файла баночка с аргументом из пакетного сценария окна 8

Мой командный файл (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> 

Что я делаю неправильно в пакетном сценарии?

+0

Просто попробовал этот точный скрипт, и он отлично работает для меня (Windows 8.1) –

ответ

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% во второй строке или между = и 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 не поддерживает.

Смежные вопросы