![Cómo obtener el valor de retorno de pipe y ejecutable en Windows](https://rvso.com/image/1703331/C%C3%B3mo%20obtener%20el%20valor%20de%20retorno%20de%20pipe%20y%20ejecutable%20en%20Windows.png)
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_exe
el retorno falla, el valor de retorno se descarta. Supongo que cat
en 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
cmd
SÍ 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.