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