Код: Выделить всё
ProcessBuilder pb = new ProcessBuilder(
"cmd.exe",
"/c",
"chcp 65001 > nul && " + this.cmd
);
pb.redirectErrorStream(true);
Process p = pb.start();
if (!this.isAsync()) {
BufferedReader input = new BufferedReader(new InputStreamReader(p.getErrorStream(), "UTF-8"));
StringBuffer sb = new StringBuffer();
String line = null;
while ((line = input.readLine()) != null) {
sb.append(line);
}
input = new BufferedReader(new InputStreamReader(p.getInputStream(), "UTF-8"));
while ((line = input.readLine()) != null) {
sb.append(line);
}
p.waitFor();
streamWorkerImpl.addLastResult(this.getNodeUUID(), sb.toString());
} else {
p.waitFor();
}
, я получаю Hello World в моем текстовом файле, и это правильно.
Но если this.cmd — это echo Hello World > C:\Users\edit\Desktop\san.txt,
т.е. если он содержит несколько пробелов между «Hello» и «World», я получаю «Hello World» в двойных кавычках. Знаете почему это и как от этого избавиться?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ntain-that
Мобильная версия