Пакетное перенаправление WMIC и перенос в переменную

я пытаюсь использовать WMIC для удаления старых принтеров на наших старых серверах печати

если я использую приведенный ниже синтаксис из командной строки, он работает

WMIC ПРИНТЕР ГДЕ "SERVERNAME LIKE '%% OLDSERVERNAME %% '» УДАЛЯТЬ

Меня попросили посмотреть, смогу ли я заменить принтеры или обновить их, чтобы служба поддержки не получила "как мне добавить свой принтер? звонки

Я попробовал некоторые варианты с SET, чтобы установить свойства для SERVERNAME, похоже, он обрабатывается, но ничего не меняется, и выполнение GET все еще показывает старое значение.

поэтому я решил, что мог бы сделать цикл FOR / F, обернуть имя принтера (sharename) в переменную и затем использовать другую команду для воссоздания принтеров после того, как принтеры-нарушители были удалены.

Вот'мой сценарий

@ECHO

ECHO Gathering Installed Printer Information...

FOR /F "tokens=1 skip=1" %%A IN ('WMIC PRINTER WHERE "Servername like "%%printaz1%%"" get sharename') DO SET PRINTERNAME=%%A

ECHO %PRINTERNAME%

так что вы бы подумалиЯ получил бы все значения, упакованные в хорошую переменную, чтобы делать с ними, как вы хотите, но нет, я включил эхо, и кажется, что переменная возвращается в ноль, как только она 'захвачен

мой вывод выглядит так ...

FOR /F "tokens=1 skip=1" %%A IN ('WMIC PRINTER WHERE "Servername like "%%printaz1%%"" get sharename') DO SET PRINTERNAME=%%A

SET PRINTERNAME=nameofprinter

SET PRINTERNAME=

ECHO

ECHO is on.

хотелось бы несколько мыслей о том, почему он, кажется, сбрасывает строку.

Powershell и VBScript не подходятЯ тоже не могуЯ знаком с обоими, только это казалось возможным, и я действительно неЯ не хочу начинать все сначала.

Ответы на вопрос(5)

Ваш ответ на вопрос