Ejecute una línea de comando con Gradle y guarde el resultado de salida

Quiero ejecutar una línea de comando con Gradle para que este comando tenga una salida.
Ejecuto este comando en Windows PowerShell:
./mybat.bat myArgs cuando presiono enter, imprimirá un dígito, como este:
123456
Quiero ejecutar este comando con Gradle y guardar este resultado (123456)
Aquí hay un código que escrito en el archivo build.gradle de Android:

task getSomeOutput(type: Exec) {
    workingDir "${buildDir}/output"
    commandLine 'powershell', './mybat.bat' , 'foo'//this is myArgs for example
}

esto funciona e imprime el valor 123456, pero quiero guardarlo en una variable, ¿cómo puedo hacer eso?

Answer

Como se puede ver en el documento oficial AQUÍ

Esto se puede lograr con la siguiente tarea

task executeCMD(type:Exec) {
  workingDir '.'
  commandLine 'mybat.bat', '>', 'log.txt'
     doLast {
         println "Executed!"
     }
 }

Esto enviará el resultado de la mybat.bat ejecución y establecerá los resultados en un archivo txt llamado log.

the .es el directorio donde tienes el script.

en mi caso es un directorio raíz del proyecto.

el mejor enfoque que encontré es agregar '/c' a los argumentos de la línea de comandos y usar standardOutput , aquí hay un código que podría ayudar a otras personas:

task getSomeOutput(type: Exec) {
    workingDir "${buildDir}/output"
    commandLine 'powershell', '/c', './mybat.bat' , 'foo'//this is myArgs for example
    standardOutput = new ByteArrayOutputStream()
    doLast {
        def result = standardOutput.toString()
        println "the result value is: $result"
    }    
}