Как в пакетный файл *.bat передать параметр из командной строки для Java
Тут происходит следующее. После запуска бат файла, происходит компиляция javac Pirma.java, затем запуск без параметров Pirma.java. На выходе получим Hello, World! Ниже нужно указать 2 параметра имя и фамилию, чтобы было как будто бы java Pirma Name Surname.
Например, это не работает:
1 2 3
set /p kint = Please write down your name and surname: java Pirma %kint% java Pirma kint
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Файл как параметр командной строки
Помогите пожалуйста исправить ошибку и запилить название файда как параметр командной строки. .
Написать пакетный файл, обрабатывающий параметры командной строки и код завершения команды (программы)
Помогите пожалуйста написать пакетный файл обрабатывающий параметры командной строки и кода.
Как передать параметр из jsp java страницы в функцию javascript и возвратить обратно другой параметр
На jsp странице имеется динамически формируемая таблица с чекбоксами в первой колонке каждой строки.
Разработать пакетный файл для установки даты и времени (параметры – в командной строке и во внешнем файле)
Разработать пакетный файл для установки даты и времени (параметры – в командной строке и во внешнем.
5059 / 2047 / 397
Регистрация: 06.01.2013
Сообщений: 4,760

Сообщение было отмечено Aliksan как решение
Решение
set /p kint = Please write down your name and surname: java Pirma %kint%
Вот, ваш же код. Он и должен работать
Добавлено через 1 минуту
А, ну да, конечно. Лишние пробелы после имени переменной.
set /p kint = .
задаст перменную kint[пробел]
set /p kint=Please write down your name and surname: java Pirma %kint%
Регистрация: 22.09.2015
Сообщений: 173
Забыл, что пробелы важны, спасибо!
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как передать аргументы командной строки для обработки в слот?
Считай только начал работать с Qt. Возникла такая задача: обработать аргументы командной строки.
Файл: Передать файл в качестве параметра командной строки в программу
Есть программа с файлом(Eclipse) import java.io.*; public class clj < >class ShowFile
NASM — передать имя файла для инклюда как макрос из командной строки
Привет! Достался мне в наследство код, написанный на nasm’е. Для компиляции используется такая.
Разработать пакетный bat-файл
Разработать пакетный файл для перехода студента в личный каталог. Группа выбирается из меню, курс.
Как вычислить параметр командной строки?
Суть. Нужно сделать, чтобы скрипт определял запущены ли регламентные задания в 1с в отдельном.
Как передать параметры в java в bat
Есть .bat файл для запуска программы с таким содержимым: java -jar «C:\Tera\TeraPrime 4\getdown-1.7.1.jar» «C:\Tera\TeraPrime 4\bin» нужно или запустить этот bat-ник с помощью WinExec, или запустить cmd.exe с такими параметрами. bat-ник запускает программу если открыть его обычным образом, а через WinExec черное окошко мигает на долю секунды и все, если открыть bat-ник через WinExec, тоже ничего не происходит.
Add(Button,8377986,315,245)
Left=55
Top=300
link(onClick,15366726:doConsoleExec,[])
>
Add(WinExec,15366726,378,231)
FileName=»cmd.exe»
Param=»java -jar «C:\Tera\TeraPrime 4\getdown-1.7.1.jar» «C:\Tera\TeraPrime 4\bin»»
Point(doConsoleExec)
Point(doConsoleInput)
link(Params,412603:Text,[])
>
Add(VisualStrings,412603,385,196)
Lines=#81:java -jar «C:\\Tera\\TeraPrime 4\\getdown-1.7.1.jar» «C:\\Tera\\TeraPrime 4\\bin»|
Point(doText)
Point(onText)
>
Add(MainForm,11629800,315,189)
Width=409
Height=528
Caption=»Ping localhost»
>
В папке C:\Tera\TeraPrime 4\bin находится.jar файл, это программа которая запускается батником
Редактировалось 1 раз(а), последний 2019-09-14 17:57:30
#1.1 контекстная реклама от партнеров

Sersey
Ответов: 520
Рейтинг: 14
#2: 2019-09-14 20:30:02 ЛС | профиль | цитата
Вот схема, какую команду передать, чтобы перейти в C:\Windows\system32, CD C:\Windows\system32, не работает, если удастся перейти, может и java -jar «C:\Tera\TeraPrime 4\getdown-1.7.1.jar» «C:\Tera\TeraPrime 4\bin» получится запустить как писал выше.
Add(MainForm,10385931,98,182)
Left=20
Top=105
Width=413
Height=499
>
Add(WinExec,6219169,245,217)
FileName="cmd.exe "
Point(doConsoleInput)
Point(onConsoleResult)
Point(doConsoleExec)
Point(onConsoleError)
link(onConsoleResult,6776693:doEvent1,[])
link(onConsoleError,6776693:doEvent2,[])
>
Add(Edit,13066046,161,182)
Left=5
Top=40
Width=350
Text=""
>
Add(Charset,5379116,329,231)
link(onCharset,10701895:doAdd,[])
>
Add(Memo,10701895,392,231)
Left=5
Top=90
Width=385
Height=365
Ctl3D=1
ScrollBars=2
>
Add(Button,1666771,98,273)
Left=5
Top=10
Width=135
Height=25
Caption="start"
Flat=0
link(onClick,6219169:doConsoleExec,[(219,279)(219,244)])
>
Add(Hub,6776693,294,231)
InCount=2
OutCount=1
link(onEvent1,5379116:doCharset,[])
>
Add(FormatStr,11080754,161,231)
DataCount=1
Mask="%1\r\n"
link(onFString,6219169:doConsoleInput,[])
link(Str1,13066046:Text,[])
>
Add(Button,14895882,98,231)
Left=5
Top=65
Width=135
Height=25
Caption="command"
Flat=0
link(onClick,11080754:doString,[])
>
— Добавлено в 2019-09-14 20:52:43
Переместится в другой каталог получилось cd /d C:\Windows\system32, а параметр java -jar «C:\Tera\TeraPrime 4\getdown-1.7.1.jar» «C:\Tera\TeraPrime 4\bin» не передается, пишут Синтаксическая ошибка в имени файла, имени папки или метке тома.
Редактировалось 1 раз(а), последний 2019-09-14 20:52:43

Netspirit
Ответов: 4609
Рейтинг: 745
#3: 2019-09-16 11:14:18 ЛС | профиль | цитата
«В другой каталог» можно «переместиться» с помощью параметра WinExec.WorkingDir
По первой схеме. Если хочешь запускать с помощью CMD — тогда смотри в мануале по CMD как нужно передавать параметры. В частности, параметры /C и /K. Потренироваться можешь в самом CMD: запускаешь, а в нём вводишь «cmd.exe /C . » — если получится, значит вызываешь правильно.
Но в этом нет необходимости. Компонент WinExec справится и сам:
Filename=java.exe
Param=-jar «C:\\Tera\\TeraPrime 4\\getdown-1.7.1.jar» «C:\\Tera\TeraPrime 4\\bin»
Обратить внимание на двойные слеши и почитать в справке почему так.
Красным — это параметры передаваемые jar-файлу, согласно мануалу по параметрам вызова java.exe. Если нужен рабочий каталог — использовать WorkingDir.
Редактировалось 1 раз(а), последний 2019-09-16 11:14:41

Sersey
Ответов: 520
Рейтинг: 14
#4: 2019-09-16 11:26:48 ЛС | профиль | цитата
Я сделал по другому, запускаю консоль -> перехожу в нужный каталог cd /d C:\ -> Передаю консоли запуск .bat файла, а в файле параметры какие нужно для запуска

Netspirit
Ответов: 4609
Рейтинг: 745
#5: 2019-09-16 11:36:55 ЛС | профиль | цитата
И что мешает реализовать то, что в bat-файле, с помощью WinExec?
Если есть проблемы с рабочим каталогом — перед запуском можно попробовать точку doCurrentDir компонента Dir.
Редактировалось 2 раз(а), последний 2019-09-16 11:38:22

Sersey
Как передать параметры в java в bat
Сообщения: 26
Благодарности: 0
Имеется скрипт в котором часть кода вынесена в подпрограммы
Как передать значения переменных которые пристроились внутри подпрограммы в глобальную область видимости?
call:Подпрограмма echo %per1%%per2%%per3% :: Должно вывести "ОдинДваТри" pause :Подпрограмма setlocal enableextensions enabledelayedexpansion Set per1=Один Set per2=Два Set per3=Три endlocal & set per1=%per1% & set per2=%per2%& set per3=%per3% exit /b
Ошибка думаю в последней строке подпрограммы, буду благодарен за подсказку
Сообщения: 2691
Благодарности: 1674
wlad1164,
У меня работает
@Echo Off cls Call :Sub echo %per1% %per2% %per3% pause GoTo :Eof :Sub SetLocal EnableExtensions EnableDelayedExpansion Set per1=Один Set per2=Два Set per3=Три Endlocal & set per1=%per1% & set per2=%per2%& set per3=%per3% exit /b
Еще красивее
@Echo Off cls Call :Sub "Kuku1" "Kuku2" "Kuku3" echo %Kuku1% %Kuku2% %Kuku3% pause GoTo :Eof :Sub SetLocal EnableExtensions EnableDelayedExpansion Set per1=Один Set per2=Два Set per3=Три Endlocal & set %~1=%per1% & set %~2=%per2%& set %~3=%per3% exit /b
——-
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Последний раз редактировалось megaloman, 26-11-2018 в 13:36 .
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Сообщения: 26
Благодарности: 0
megaloman, Действительно, проблема проявляется когда call:подпрограмма помещена внутрь IF
cls Set Mode=Man if "%Mode%"=="Man" ( Call :Sub echo Mode MAN echo %per1% %per2% %per3% pause ) pause exit GoTo :Eof :Sub SetLocal EnableExtensions EnableDelayedExpansion Set per1=Один Set per2=Два Set per3=Три Endlocal & set per1=%per1% & set per2=%per2%& set per3=%per3% exit /b
Можно ли что то с этим сделать?
Возникла мысль вынести в конец скрипта (после команды exit) части кода, вроде как сработало, но нормально и так делать?
cls Set Mode=Man if "%Mode%"=="Man" ( goto:НачалоMan :КонецMan echo %per1% %per2% %per3% ) pause exit GoTo :Eof :Sub SetLocal EnableExtensions EnableDelayedExpansion Set per1=Один Set per2=Два Set per3=Три Endlocal & set per1=%per1% & set per2=%per2%& set per3=%per3% exit /b :НачалоMan Call :Sub echo Mode MAN goto:КонецMan exit /b
Запуск bat-файла из Java
Как запустить bat-файл из программы на java?
Отслеживать
7,719 1 1 золотой знак 24 24 серебряных знака 47 47 бронзовых знаков
задан 23 фев 2016 в 18:33
as1andrey1 as1andrey1
282 2 2 серебряных знака 13 13 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Runtime.getRuntime().exec("cmd /c FullFileName.bat");
Вместо FullFilePath.bat вставляете полный/относительный путь к вашему bat-файлу, например: Runtime.getRuntime().exec(«cmd /c D:/BatFileName.bat»);
Если вам потребуются какие-то особые параметры запуска bat-файла (вместо /c ), то посмотрите список параметров данной комманды в коммандной строке ( cmd /? ).
Отслеживать
ответ дан 23 фев 2016 в 18:36
StateItPrimitive StateItPrimitive
7,719 1 1 золотой знак 24 24 серебряных знака 47 47 бронзовых знаков
а как прочесть ответ ?
11 сен 2016 в 14:35
ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/C", "pathToYourFile.bat"); Process process = processBuilder.start();
Отслеживать
ответ дан 23 фев 2016 в 19:56
Мстислав Павлов Мстислав Павлов
6,757 2 2 золотых знака 18 18 серебряных знаков 40 40 бронзовых знаков
