代码之家  ›  专栏  ›  技术社区  ›  jh6004

WMIC命令在批处理文件的For循环中不起作用

  •  1
  • jh6004  · 技术社区  · 12 年前

    我正在尝试运行一个批处理文件,但一直出现错误。我认为这个问题与 I can't get the right syntax to use WMIC in batch file ,但dbenham的答案在我的情况下并不完全有效,因为我正在寻找str。这是批处理文件的一部分(它挂在上面的部分):

    对于/F%%I in('mic nic where'Manufacturer!=“Microsoft”and Macaddress IS NOT NULL'get index ^|findstr/r[0-9]')do( 回波%%I )

    如果你从cmd或它自己的批处理文件行运行wmic命令,它的工作原理很好,但我无法让它在for循环中运行。有人能帮我吗?

    谢谢 约翰

    2 回复  |  直到 7 年前
        1
  •  5
  •   rojo    12 年前

    这样试试:

    for /f "tokens=2 delims==" %%I in (
        'wmic nic where "manufacturer!=\"Microsoft\" and macaddress is not null" get macaddress /format:list 2^>NUL'
    ) do echo %%I
    

    你必须在你的引号嵌套的地方反斜杠转义你的引号。

        2
  •  0
  •   FrinkTheBrave    8 年前

    WMIC中有一个特性,它有时会等待用户输入。

    如果您更换

    wmic
    

    在你的例子中

    echo. ^| wmic
    

    它将允许命令完成