Estou usando o Powershell para criar scripts para a exclusão de impressoras e seus drivers. Eu estou chamando o Printing_admin_scripts
que estão localizados na pasta System32 no Windows 7+. Esses scripts geram um monte de saída e eu gostaria de capturar a saída (jogar fora a maior parte) e gerar minha própria saída, dependendo do status.
Why can't you use $LASTEXITCODE
?
Porque esses scripts não geram códigos de saída! Eles sempre representam 0.
Meu objetivo é procurar "0x80041002"
na saída do comando. Se assim for, faça isso ... Se não, faça isso. Abaixo está o que eu tentei, mas falhei:
.\prnmngr.vbs -d -p "$_" | findstr "0x80041002" | out-null
If ($LASTEXITCODE = 0) {
Write-Host "$_ does not exist"
} else {
Write-Host "$_ removed"
}
Eu também tentei:
& .\prnmngr.vbs -d -p "$_".ToString() | findstr "0x80041002" | out-null
If ($LASTEXITCODE = 0) {
Write-Host "$_ does not exist"
} else {
Write-Host "$_ removed"
}
Isso oculta a saída, mas sempre imprime que a impressora foi removida, mesmo que não existisse (o que normalmente gera "0x80041002"). Meu objetivo é encontrar essa string, mesmo que ela não seja gravada no host (espero), depois escrever meu próprio texto no lugar e continuar.