Взаимодействие файла .bat с приложением Java или C # .net - PullRequest
1 голос
/ 26 сентября 2011

Как взаимодействовать .bat файл с приложением Java или C # .net GUI? Вот часть моего кода .bat.

:Valid

echo Enter student id:

set/p "pass=>"

if NOT %pass%== UserStudentId goto FAIL

Когда я запускаю .bat-файл, он спрашивает Enter student id: в командной строке, затем проверяет идентификатор студента и выполняет какой-то процесс. Я хочу передать этот ввод из Java или C # .net IDE в файл .bat и продолжить процесс. Здесь пользователь никогда не будет иметь дело с командной строкой. Если есть какой-либо вывод из .bat, он также будет показан в java или .net IDE.

Интересно, возможно ли это, так как я новичок в этом. TX.

1 Ответ

2 голосов
/ 26 сентября 2011

Когда вы запускаете процесс из Java или C #, вы можете получать консольный ввод и вывод этого процесса в виде потоков.Затем вы можете просто записать в поток ввода процесса.

Это может быть тем не менее, что пакетный файл на самом деле не понравится, поскольку cmd может искать фактический интерактивный вводс set /p (например, сбой при перенаправлении файла, если я правильно помню).Лучшим методом, если вы сами управляете командным файлом, будет следующий:

if defined pass goto SkipInput
set /p pass=Enter student ID:
:SkipInput

, который будет использовать переменную окружения, если она присутствует, и только спросит пользователя, если она еще не установлена.Это гораздо более удобно для автоматизации, поскольку вы можете просто установить переменную окружения в вызывающем процессе и наследовать ее для каждого процесса, который вы создаете.И никаких хлопот с эмуляцией ввода.

...