Пакетное перенаправление 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 не подходятЯ тоже не могуЯ знаком с обоими, только это казалось возможным, и я действительно неЯ не хочу начинать все сначала.