Batch WMIC redirecionando a saída e agrupando na variável

Estou tentando usar o WMIC para remover algumas impressoras antigas em nossos servidores de impressão mais antigos

se eu usar a sintaxe abaixo da linha de comando funciona

IMPRESSORA WMIC ONDE "SERVERNAME LIKE '%% OLDSERVERNAME %%'" DELETE

Pediram-me para ver se eu poderia substituir as impressoras ou atualizá-las para evitar que o helpdesk recebesse chamadas "como faço para adicionar minha impressora"?

Eu tentei alguma variação com SET para definir as propriedades para SERVERNAME, parece processar, mas nada muda e fazendo um GET mostra o valor antigo ainda.

então imaginei que poderia fazer um loop FOR / F, envolver o nome da impressora (nome de compartilhamento) em uma variável e, em seguida, usar outro comando para recriar as impressoras, depois que as impressoras incorretas tiverem sido excluídas.

aqui está meu roteiro

@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%

então você pensaria que teria o valor todo envolvido em uma variável legal para fazer como quiser, mas não, eu fiz o eco e parece que a variável é definida de volta para null assim que é capturada

minha saída parece com isso ...

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.

adoraria algumas reflexões sobre por que parece estar jogando a corda.

O Powershell e o VBScript também não estão fora da opção, estou familiarizado com ambos, apenas isso pareceu possível, e eu realmente não quero começar de novo.

questionAnswers(5)

yourAnswerToTheQuestion