Я использую Powershell для создания сценария удаления принтеров и их драйверов. Я звоню Printing_admin_scripts
которые находятся в папке System32 в Windows 7+. Эти сценарии генерируют МНОГО выходных данных, и я хотел бы захватить выходные данные (отбросить большую часть их) и сгенерировать свой собственный вывод в зависимости от состояния.
Почему вы не можете использовать
$LASTEXITCODE
?
Потому что эти скрипты не генерируют коды выхода! Они всегда представляют 0.
Моя цель состоит в том, чтобы искать "0x80041002"
в выходных данных команды. Если так, сделай это ... Если нет, сделай это. Ниже я попробовал, но не смог:
.\prnmngr.vbs -d -p "$_" | findstr "0x80041002" | out-null
If ($LASTEXITCODE = 0) {
Write-Host "$_ does not exist"
} else {
Write-Host "$_ removed"
}
Я также попробовал:
& .\prnmngr.vbs -d -p "$_".ToString() | findstr "0x80041002" | out-null
If ($LASTEXITCODE = 0) {
Write-Host "$_ does not exist"
} else {
Write-Host "$_ removed"
}
Это скрывает вывод, но всегда печатает, что принтер был удален, даже если он не существовал (который обычно выдает "0x80041002"). Моя цель - найти эту строку, даже если она не записана на хост (надеюсь), затем написать свой собственный текст и продолжить.