【发布时间】:2013-08-13 00:23:13
【问题描述】:
我正在尝试写入已加载的批处理文件进程,但我不知道如何执行相当于返回的操作。
Java 代码:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.util.Scanner;
public class Start {
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("C:\\Users\\Max\\Desktop\\test.bat");// Runtime.getRuntime().exec("keytool -genkey -alias " + name.replace(" ", "").trim() + " -keystore key");
DataInputStream in = new DataInputStream(p.getInputStream());
Scanner scanner = new Scanner(in);
// System.out.println(scanner.nextLine());
DataOutputStream out = new DataOutputStream(p.getOutputStream());
out.write("test\n\n".getBytes());
out.flush();
out.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
批号:
@echo off
set /p delBuild=lozors?:
echo test >> test.txt
运行时,它应该输出到我桌面上的文本文件...但它似乎没有接受输入?我尝试过使用 \n 和 \n\n,以及仅写入和刷新,但它不起作用。想法?
【问题讨论】:
-
为什么在编写文本时使用 DataOutputStream?为什么不使用 PrintStream 并简单地使用其
println(...)方法来编写新行? -
您期望发生什么?
test.bat不读取任何输入。 -
"但它似乎不接受输入?" 但为什么要接受呢?首先,批处理文件不需要任何输入
-
批处理文件正在将字符串
test写入test.txt的末尾。无论您在命令行上键入什么内容,它都会执行此操作。 -
我还“怀疑”当您从进程中读取输入时,它可能已经停止执行......
标签: java batch-file stream return output