Uma maneira um pouco complicada de pensar é usar um dos programas tee
portados, salvar em um arquivo temporário e testar o arquivo com find
. No entanto, o uso de um arquivo temporário pode ser indesejável.
Se o PowerShell for uma opção, ele realmente terá um cmdlet Tee-Output
. Não é tão direto quanto o exemplo bash, mas tem uma opção -Variable
para salvar a saída em uma variável, que pode então ser pesquisada:
# save result in $LastOutput and also display it to the console
echo "some text" | Tee-Output -Variable LastOutput
# search $LastOutput for a pattern, using Select-String
# instead of find to keep it within PowerShell
$Result = $LastOutput | Select-String -Quiet "text to find"
# $Result should contain either true or false now
# this is the equivalent of batch "if errorlevel 1"
if ($Result -eq $True) {
# the string exists in the output
}
Para responder à pergunta mais geral, também é possível canalizar a variável para qualquer outro programa, que irá então definir $LastExitCode
. Como um one-liner que pode ser chamado a partir da linha de comando básica: powershell -c "echo text | Tee-Object -Variable Result; $Result | foo"