Использование wmic для получения рабочей группы в командном файле

1334
BillH

Я не очень разбираюсь в пакетном файле, но я пытаюсь использовать рабочую группу wmic. Я пробовал разные вещи с forвариантами. Пока что это лучший результат, который я получил.

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

Это возвращает то, что я хочу, но это также отражает что-то еще, потому что это дает echo is offсообщение. Я также хочу установить для рабочей группы переменную, например, такую.

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

Это ничего не возвращает, хотя. Я предполагаю, что мне нужно использовать tokensи / или delims, но у меня просто нет знаний, чтобы заставить его работать правильно.

Если бы кто-нибудь мог помочь мне в этом, я был бы очень признателен, и, возможно, это поможет мне узнать немного больше о том, как использовать forцикл. Я знаю, что это, вероятно, что-то очень простое, поэтому, пожалуйста, извините меня за такое невежество.

1

1 ответ на вопрос

1
DavidPostill

Это также повторяет что-то еще, потому что это дает echo is off

Это потому что wmic (плохо написано и) выводит пустую строку в конце вывода.

Ты можешь использовать findstr /r /v "^$" чтобы удалить пустую строку.

Использование командного файла:

@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 

Используя командную строку:

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

Заметки:

  • for /fпетли через wmicвыход.
  • skip=1пропускает строку заголовка (содержащую VariableValue)
  • findstr /r /v "^$"удаляет завершающую пустую строку из wmicвывода.

Пример вывода:

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

Дальнейшее чтение

Это работает для того, что мне нужно. Спасибо за помощь и ссылки, которые помогут мне понять, что я делаю. BillH 7 лет назад 0