Cómo obtener el valor de retorno de pipe y ejecutable en Windows

Cómo obtener el valor de retorno de pipe y ejecutable en Windows

Estoy ejecutando algunas pruebas unitarias que implican la conexión a mi ejecutable, como esta.

cat text.txt | my_exe --options

Al ejecutar estos comandos, ¿cómo obtengo el valor de retorno de my_exe? Incluso cuando my_exeel retorno falla, el valor de retorno se descarta. Supongo que caten su lugar se prioriza el valor de retorno de.

Preguntado de otra manera, ¿cómo ejecuto el comando de canalización anterior para obtener el mismo valor de retorno que:

cat text.txt && my_exe --options

ty!

editar: Usando el tradicional cmd.

Respuesta1

cmdSÍ establece el estado de salida de una tubería en el componente más a la derecha y el (o cualquier) otro componente NO está "priorizado" ni siquiera considerado. Observar:

c:\temp>echo exit 42 | cmd >NUL

c:\temp>echo %errorlevel%
42


c:\temp>cmd/c echo exit 42 | cmd >NUL

c:\temp>echo %errorlevel%
42


c:\temp>cmd/c "echo exit 42 && exit 17" | cmd >NUL

c:\temp>echo %errorlevel%
42


c:\temp>cmd/c exit 17 | cmd/c exit 0

c:\temp>echo %errorlevel%
0


c:\temp>cmd/c exit 11 | cmd/c exit 22 | cmd/c exit 33

c:\temp>echo %errorlevel%
33


c:\temp>cmd/c exit 11 | cmd/c exit 22 | cmd/c echo GOOD
GOOD

c:\temp>echo %errorlevel%
0

Si obtiene un resultado diferente, debe estar haciendo algo diferente de lo que muestra en su Q, pero como no tenemos idea de qué es eso, es imposible hacer sugerencias útiles.

información relacionada