Войти

Показать полную графическую версию : Выполнение команды с учётом вывода предыдущей в PowerShell.


kor3590
27-11-2017, 14:26
Опрашиваю командой следующий объект gwmi win32_printer -Filter "Local='$true'" Чтобы узнать список локальных принтеров. Получаю вывод

Location :
Name : Microsoft XPS Document Writer
PrinterState : 0
PrinterStatus : 3
ShareName :
SystemName : KIOSK

Location :
Name : Fax
PrinterState : 0
PrinterStatus : 3
ShareName :
SystemName : KIOSK

Как выполнить следующую команду с условием,что если есть Microsoft XPS Document Writer в выводе предыдущей команды выполняется, а если нет то не выполняется. Это вообще реально? )

Kazun
27-11-2017, 14:33
$xps = gwmi win32_printer -Filter "Local='$true' AND Name='Microsoft XPS Document Writer'"
if($xps) {
"Command"
}

kor3590
27-11-2017, 15:33
Вместо Command ввожу любую команду к примеру get-eventlog -newest 10 -logname system На выводе получаю просто get-eventlog -newest 10 -logname system)))

Kazun
27-11-2017, 15:37
Имелось,ввиду, что "Command" заменить на свой список команд.


$xps = gwmi win32_printer -Filter "Local='$true' AND Name='Microsoft XPS Document Writer'"
if($xps) {
get-eventlog -newest 10 -logname system
}

kor3590
27-11-2017, 15:37
Т.е. он соблюдает условие,но команду в кавычках не исполняет а просто выводит то что я заключил в кавычки.(((

Всё получилось! Хочется выразить огромную благодарность тебе Kazun. В интернете огромное кол-во информации и легко запутаться. Надо читать техническую документацию на англ с переводчиком)

kor3590
27-11-2017, 20:01
...




© OSzone.net 2001-2012