Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For loop WMIC命令在批处理文件的For循环中不起作用_For Loop_Batch File_Wmi_Wmi Query_Wmic - Fatal编程技术网

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

For loop WMIC命令在批处理文件的For循环中不起作用,for-loop,batch-file,wmi,wmi-query,wmic,For Loop,Batch File,Wmi,Wmi Query,Wmic,我有一个批处理文件,我正试图运行,但我不断得到一个错误。我认为这个问题类似于,但dbenham的答案在我的案例中并不完全有效,因为我正在向findstr发送管道。以下是批处理文件的一部分(它挂起的部分): 对于/F%%I in('wmic nic where'Manufacturer!=“Microsoft”且Macaddress不为空'get index^ | findstr/r[0-9]),请执行以下操作( 回声%%I ) 如果您从cmd或批处理文件中自己的行运行wmic命令,它就可以正常工

我有一个批处理文件,我正试图运行,但我不断得到一个错误。我认为这个问题类似于,但dbenham的答案在我的案例中并不完全有效,因为我正在向findstr发送管道。以下是批处理文件的一部分(它挂起的部分):

对于/F%%I in('wmic nic where'Manufacturer!=“Microsoft”且Macaddress不为空'get index^ | findstr/r[0-9]),请执行以下操作( 回声%%I )

如果您从cmd或批处理文件中自己的行运行wmic命令,它就可以正常工作,但我无法让它在for循环中运行。有人能帮我吗

谢谢, 约翰

这样试试:

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
你必须在引号嵌套的地方对引号进行反斜杠转义。

尝试以下方法:

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

您必须在引号嵌套的地方对引号进行反斜杠转义。

WMIC中有一个功能,它有时会等待用户输入

如果你更换

wmic
在您的示例中,使用

echo. ^| wmic

它将允许命令完成

WMIC中有一项功能,它有时会等待用户输入

如果你更换

wmic
在您的示例中,使用

echo. ^| wmic

它将允许命令完成

感谢您的快速响应!这似乎奏效了。使用列表格式和您设置的delim是否比管道到findstr更好?另外,你能告诉我2>空值是什么吗?我以前见过,但对此一无所知。是的,运行单个命令比通过
findstr
管道输出效率更高。
2>NUL
将stderr重定向到黑洞。我之所以说这纯粹是化妆
wmic
经常无正当理由地向stderr打印空行。将stderr重定向到虚无隐藏了那些无用的换行符。重定向是不必要的,但对于我来说,在使用
wmic
时包含重定向只是一种习惯。无论如何,请参阅以了解更多信息。感谢您的快速响应!这似乎奏效了。使用列表格式和您设置的delim是否比管道到findstr更好?另外,你能告诉我2>空值是什么吗?我以前见过,但对此一无所知。是的,运行单个命令比通过
findstr
管道输出效率更高。
2>NUL
将stderr重定向到黑洞。我之所以说这纯粹是化妆
wmic
经常无正当理由地向stderr打印空行。将stderr重定向到虚无隐藏了那些无用的换行符。重定向是不必要的,但对于我来说,在使用
wmic
时包含重定向只是一种习惯。无论如何,请参阅以了解更多信息。