Если вы не боитесь создавать повторно используемый код, вы можете создать объект, который обертывает процесс .execute(). Я создал нечто подобное и регулярно им пользуюсь.
Создайте новый процесс с:
деф proc="cmd".execute()
После этого вы можете использовать «consumeProcessOutput()» для управления вводом и выводом «proc». Все, что вы отправите в него, будет обработано так, как если бы вы ввели его в оболочку, и весь вывод этой оболочки будет вам доступен.
Я завернул все это в замыкание, чтобы вы могли сделать это:
cmd("cd \\ \n dir ") {
if(it.contains("AUTOEXEC.BAT"))
println it;
return true;
}
Чтобы получить дисплей, который показывает только строку autoexec.bat. Обратите внимание, что до тех пор, пока вы не вернете true из замыкания, стандартный ввод этого процесса доступен, поэтому вы можете отправлять больше строк текста и взаимодействовать с ним бесконечно.
Я использую его совсем немного, потому что такие команды, как «cd» и «Dir», не работают в окнах с .execute(), поэтому просто:
def directoryListing=cmd("cd\\\ndir")
даст мне быстрый список каталогов с легкостью.
person
Bill K
schedule
12.12.2012