Выполнение 2 команд в одной команде Java
Мне надо сначала зайти в дерикторию через cd, а потом вести длинную команду. Не могу понять как две команды совместить в одну. https://pastebin.com/Bqbeti0e Это как я выполняю команду, но без выбора дериктории
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("cmd", "/c","длинная кмд"); Process process = processBuilder.start();
printResults(process); public static void printResults(Process process) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
Ответы (1 шт):
Для того чтобы выполнить несколько команд из одной командной строки, нужно объединить их с помощью символа условной обработки:
команда1 & команда2— Используется для разделения нескольких команд в одной командной строке. Вcmdвыполняется первая команда, затем вторая команда.команда1 && команда2— Запускает команду, стоящую за символом&&, только если команда, стоящая перед этим символом была выполнена успешно. Вcmdвыполняется первая команда. Вторая команда выполняется, только если первая была выполнена успешно.команда1 || команда2— Запускает команду, стоящую за символом||, только если команда, стоящая перед символом||не была выполнена. Вcmdвыполняется первая команда. Вторая команда выполняется, только если первая не была выполнена (полученный код ошибки превышает ноль).
Таким образом комманды просто объединяются в одном билдере:
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe","/c", "cd /d :D && Dir");