Se non si ha paura di creare un codice riusabile, è possibile creare un oggetto che avvolge un processo .execute(). Ho creato qualcosa di simile e lo uso regolarmente.
creare un nuovo processo con:
def proc = .Execute "cmd"()
Dopo di che è possibile utilizzare "consumeProcessOutput()" per gestire l'ingresso e l'uscita di "proc". Qualsiasi cosa tu invii verrà eseguita come se l'avessi inserita in una shell e tutti gli output di quella shell saranno disponibili per te.
ho avvolto tutto questo in una chiusura in modo tale che si potrebbe fare questo:
cmd("cd \\ \n dir ") {
if(it.contains("AUTOEXEC.BAT"))
println it;
return true;
}
Per ottenere un display che mostra solo la linea autoexec.bat. Si noti che fino a quando non si restituisce true dalla chiusura, lo stdin di quel processo è disponibile in modo da poter inviare più righe di testo e interagire con esso indefinitamente.
lo uso un po 'perché i comandi come "cd" e "Dir" non funzionano in Windows con .execute(), quindi un semplice:
def directoryListing=cmd("cd\\\ndir")
me otterrà un elenco di directory rapida facilmente.
fonte
2012-12-12 20:21:04
Non sono ancora sicuro di cambiare la directory di lavoro. –
Grazie finora! Mi piace un sacco! – raoulsson