Als @tim_yates Kommentare, die Sie StringWriter
verwenden können, das Prozessergebnis zu speichern und die Ausgabe als String
mit toString()
Methode erhalten:
def sw = new StringWriter()
Process p = 'foo.exe'.execute()
p.consumeProcessOutputStream(sw)
p.waitForOrKill(TIMEOUT_IN_MILLIS)
def processOutput = sw.toString()
Wenn Sie diese String
verwenden möchten Ihre Prozessergebnis zu überprüfen, vielleicht eine Alternative Option Schriftsteller ist das Ergebnis einer File
, dies zu tun, können Sie etwas ähnliches tun mit FileWriter
def fw = new FileWriter("/resultProcess.log")
Process p = 'foo.exe'.execute()
p.consumeProcessOutputStream(fw)
p.waitForOrKill(TIMEOUT_IN_MILLIS)
fw.with {
flush()
close()
}
Oder wie auch @tim_yates
vorschlagen sowohl an Zeit in Anspruch nehmen können Sie verwenden, um von apache commons-io
: TeeOutputStream
und WriterOutputStream
das Ergebnis String
und ein File
zu schreiben:
@Grab('commons-io:commons-io:2.5')
import org.apache.commons.io.output.TeeOutputStream
import org.apache.commons.io.output.WriterOutputStream
// File outputresult
def wosFw = new WriterOutputStream(new FileWriter("/resultProcess.log"))
// String output result
def sw = new StringWriter()
def wosSw = new WriterOutputStream(sw)
// create teeOutputStream with two outputStreams
def teeOS = new TeeOutputStream(wosFw,wosSw)
Process p = 'foo.exe'.execute()
p.consumeProcessOutputStream(teeOS)
p.waitForOrKill(TIMEOUT_IN_MILLIS)
teeOS.with {
flush()
close()
}
def resultProcess = sw.toString()
Sie es erfassen in einem 'StringWriter' könnte und diese dann auf' Systemdruck .out' ... Oder verwenden Sie etwas wie [commons-io TeeOutputStream] (https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/output/TeeOutputStream.html) –