使用 wmic 在批处理文件中获取工作组

使用 wmic 在批处理文件中获取工作组

我不太熟悉批处理文件,但我正在尝试使用 来获取工作组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"

但这不会返回任何内容。我假设我需要使用tokensand/or delims,但我只是不知道如何让它正常工作。

如果有人能帮助我,我将不胜感激,也许这可以帮助我更多地了解如何使用循环for。我知道这可能很简单,所以请原谅我如此无知。

答案1

它也呼应了其他的东西,因为它给出了一个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

>

进一步阅读

相关内容