Как в пакетный файл *.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 странице имеется динамически формируемая таблица с чекбоксами в первой колонке каждой строки.
Разработать пакетный файл для установки даты и времени (параметры – в командной строке и во внешнем файле)
Разработать пакетный файл для установки даты и времени (параметры – в командной строке и во внешнем.
![]()
5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,789

Сообщение было отмечено 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с в отдельном.
Или воспользуйтесь поиском по форуму:
Аргументы командной строки
На вход программы можно передавать значения, это делается с помощью аргументов командной строки. Допустим, нам необходимо запустить программу MySecondApp и передать на вход значения «значение1» и «значение2». Из командной строки пишем следующую строчку:
java com.company.lesson2.MySecondApp значение1 значение2
Как получить переданные значения в программе? Давайте более детально рассмотрим метод main :
public static void main(String[] args)
Этот метод принимает на вход в качестве параметра массив типа String : String[] args . Именно эта переменная и будет содержать в себе, переданные нами значения «значение1», «значение2».
Метод main() в следующем примере использует цикл for для перебора элементов массива args и распечатывает значения аргументов командной строки. Что такое цикл for и массивы мы рассмотрим более подробно в следующих занятиях.
package com.company.lesson2; public class MySecondApp < public static void main(String[] args) < for (String str : args) < System.out.println("аргумент language-markup">java com.company.lesson2.MySecondApp значение1 значение2
Вывод на консоль:
аргумент = значение1 аргумент = значение2
Презентацию с видео можно скачать на Patreon .
Как передать параметры в java в bat
Сообщения: 4
Благодарности: 0
Спасибо всем за помощь.
Не получается сделать в одну строчку, мне нужно будет использовать where для нескольких, разных файлов и чтобы в начале прописывалось имя компьютера: %computername%;filename1;filename2 и тд
Еще такой вопрос реально ли вообще вывести путь от куда запущены текущие java.exe процессы, без вывода аргументов с которыми он стартован? Пробовал через wmic с выводом commandline - путь указывает, но еще и указывает кучу не нужных аргументов с которыми стартован процесс (((
В итоге хотел бы получить такую информацию: %computername%;filename1;filename2;all_java.exe_process_path
Заранее огромное спасибо!
Последний раз редактировалось Runn3r, 14-08-2018 в 15:03 .
Сообщения: 27449
Благодарности: 8086
Runn3r, так Вам как надо-то? В моём понимании или в понимании коллеги alpap? Такой:
ComputerName;c:\Windows\notepad.exe ComputerName;c:\Windows\System32\notepad.exe ComputerName;c:\Windows\SysWOW64\notepad.exe
ComputerName;c:\Windows\notepad.exe;c:\Windows\System32\notepad.exe;c:\Windows\SysWOW64\notepad.exe
Цитата Runn3r:
| мне нужно будет использовать where для нескольких, разных файлов » |
Ну, так и используйте несколько:
where.exe /r c:\ "notepad.exe" "calc.exe" "regedit.exe"
Как передать параметры в 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
Ответов: 537
Рейтинг: 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
Ответов: 4610
Рейтинг: 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
Ответов: 537
Рейтинг: 14
#4: 2019-09-16 11:26:48 ЛС | профиль | цитата
Я сделал по другому, запускаю консоль -> перехожу в нужный каталог cd /d C:\ -> Передаю консоли запуск .bat файла, а в файле параметры какие нужно для запуска

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

Sersey
Ответов: 537
Рейтинг: 14
#6: 2019-09-16 11:41:40 ЛС | профиль | цитата
Запустил через WinExec, все работает, спасибо
Add(MainForm,2953706,91,105)
link(onActivate,6219169:doConsoleExec,[])
>
Add(WinExec,6219169,147,91)
FileName="java.exe"
Param="-jar "C:\\Files\\getdown.jar" "C:\\Files\\bin""
Point(doConsoleExec)
Point(doConsoleInput)
Point(onConsoleResult)
>
Редактировалось 1 раз(а), последний 2019-09-16 11:44:08

Netspirit
Ответов: 4610
Рейтинг: 745
#7: 2019-09-16 12:11:24 ЛС | профиль | цитата
Использование события MainForm.onActivate, полагаю, не то, что тебе нужно. Так как событие срабатывает много раз на протяжении работы программы. Используй onCreate.
Чтобы Java не показывала черное окно консоли - можно вместо java.exe использовать javaw.exe и метод WinExec.doExec вместо doConsoleExec (есть нюансы). Кроме того, скрыть окно консоли можно свойством Mode.
Редактировалось 3 раз(а), последний 2019-09-16 12:16:33