猿问

从Java流程执行时,跳过批处理文件中的暂停命令

很抱歉,如果这是重复的,但没有其他解决方案。


我正在尝试编写一个Java应用程序,该应用程序将调用批处理文件,打印出该批处理文件在做什么,然后等待其完成执行,然后再执行其他任何操作。我已经读过,通过Process.getOutputStream()发送换行会触发“按任意键继续...”提示,但它对我而言并不是这样做。


这是我的test.bat:


@echo off

echo This is a test batch file.

echo This text should be readable in the console window

echo Pausing...

pause

echo done.

exit

这是我的Java驱动程序:


public class Tester {


    String cmd[] = { "cmd", "/c", "C:/Test Folder/test.bat" };


    BufferedReader in = null;

    BufferedWriter out = null;

    Process p = null;

     

在while循环中,它将打印出:


Starting process...

Started process 2018699554

INFO [2018699554] > This is a test batch file.

INFO [2018699554] > This text should be readable in the console window

INFO [2018699554] > Pausing...

而且永远不要传递暂停语句。我尝试重定向错误输出,发送VK_ENTER并发送随机密钥全部无济于事。


有任何想法吗?


达令说
浏览 189回答 1
1回答

慕哥9229398

使用缓冲的写入器,您必须在实际写入之前刷新缓冲区。在out.write()之后调用out.flush()。
随时随地看视频慕课网APP

相关分类

Java
我要回答