Usando o wmic para obter o grupo de trabalho em um arquivo de lote

1

Eu não sou muito versado em arquivo de lote, mas estou tentando obter o grupo de trabalho usando wmic . Eu tenho tentado coisas diferentes com as opções for . Até agora, este é o melhor resultado que obtive.

for /f "skip=1" %%a in ('wmic computersystem get workgroup') do echo %%a

Isso retorna o que eu quero, mas também está ecoando outra coisa porque dá uma mensagem echo is off . Eu também quero definir o grupo de trabalho para uma variável como algo como isto.

for /f "skip=1" %%a in ('wmic computersystem get workgroup') do set "myVar=%%a"

Isso não retorna nada. Eu estou supondo que eu preciso usar tokens e / ou delims , mas eu simplesmente não tenho o conhecimento para fazê-lo funcionar corretamente.

Se alguém puder me ajudar nisso, eu serei muito grato e talvez me ajude a aprender um pouco mais sobre como usar o loop for . Eu sei que isso é provavelmente algo muito simples, então, por favor, desculpe-me por ser tão ignorante.

    
por BillH 08.04.2017 / 18:04

1 resposta

1

Também está ecoando outra coisa porque dá uma echo is off

Isso ocorre porque wmic é (mal escrito e) produz uma linha em branco no final da saída.

Você pode usar findstr /r /v "^$" para remover a linha em branco.

Usando um arquivo em lotes:

@echo off
setlocal
for /f "usebackq skip=1 tokens=*" %%i in ('wmic computersystem get workgroup ^| findstr /r /v "^$"') do set myVar=%%i
echo %myVar%
endendlocal

Usando uma linha de comando:

for /f "usebackq skip=1 tokens=*" %i in ('wmic computersystem get workgroup ^| findstr /r /v "^$" ^| findstr /r /v "^$"') do @set myVar=%i && echo %myVar%

Notas:

  • for /f faz um loop na saída wmic .
  • skip=1 ignora a linha de cabeçalho (contendo VariableValue )
  • findstr /r /v "^$" remove a linha em branco final da saída wmic .

Exemplo de saída:

> wmic computersystem get workgroup
Workgroup
WORKGROUP


> for /f "usebackq skip=1 tokens=*" %i in ('wmic computersystem get workgroup ^| findstr /r /v "^$" ^| findstr /r /v "^$"') do @set myVar=%i && echo %myVar%
WORKGROUP

>

Leitura Adicional

por 08.04.2017 / 19:12