如何编写一个批处理文件,自动向提示用户输入的java程序提供输入

uwopmtnx  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(271)

我想编写一个批处理文件,它自动向提示用户输入的java程序提供输入。
到目前为止,我的代码如下:

set path=C:\Program Files\Java\jdk-13.0.2\bin

javac *.java

java myJavaProgram

问题是,当myjavaprogram执行时,它会提示用户输入,因此批处理文件会等待我输入,以便继续执行。我想能够通过输入自动,使用.bat。这可能吗?谢谢你的帮助!
编辑:更新问题以包含更多上下文。
更详细地说,什么时候 myJavaProgram 从批处理文件执行,它从控制台提示用户输入并等待输入。我必须给你一根线。当我写字符串时, myJavaProgram 用扫描器读取它并用它做一些事情(它做什么并不重要)。然后它就终止了。我想更改批处理代码,这样当它提示输入时就不需要编写字符串。我想在批处理文件中用我的输入字符串设置一个变量,并将其作为 myJavaProgram “绕过”控制台。

41zrol4v

41zrol4v1#

正如@mofi所建议的,更直接的解决方案是使用管道 | 运算符,将第一个命令(echo mystring)的输出通过管道传输到第二个命令(java.exe myjavaprogram)的输入。

@echo off
If "%Path:~-1%" == ";" (Set "Path=%Path%%ProgramFiles%\Java\jdk-13.0.2\bin") Else Set "Path=%Path%;%ProgramFiles%\Java\jdk-13.0.2\bin"

javac.exe *.java

echo myString| java.exe myJavaProgram

谢谢你的帮助。

vshtjzan

vshtjzan2#

我找到了解决办法。我先重定向 echo 从命令提示符窗口到文件的命令输出(字符串) temp.txt 使用 > 接线员。文件 temp.txt 现在包含作为输入的字符串 myJavaProgram . 然后我打开 temp.txt 并将输出作为输入发送到命令提示符窗口 myJavaProgram 使用 < 接线员。代码如下:

@echo off
If "%Path:~-1%" == ";" (Set "Path=%Path%%ProgramFiles%\Java\jdk-13.0.2\bin") Else Set "Path=%Path%;%ProgramFiles%\Java\jdk-13.0.2\bin"

javac.exe *.java

echo myString> temp.txt
java.exe myJavaProgram < temp.txt

相关问题