[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理中WMIC获取指定IP地址对应的MAC时报语法错

我的电脑(XP Pro SP2 EN)有两块物理网卡和两块虚拟网卡,想用WMIC获取指定IP地址192.168.56.1(这是其中一块虚拟网卡的IP)对应的MAC,在命令行解释器中运行这个命令:
  1. wmic NicConfig where "IPAddress='{"192.168.56.1"}'" get MACAddress /value
复制代码
报错信息为:
Node - Batcher
ERROR:
Code = 0x80041017
Description = Invalid query
Facility = WMI


初步判断是花括号里面的双引号带来的问题。因为运行下面的命令可以正确得到对应的结果(至少说明我的WMIC没问题):
wmic NicConfig where "Index='1'" get MACAddress /value

我尝试过对花括号里面的双引号进行转义,问题依旧:
  1. wmic NicConfig where "IPAddress='{\"192.168.56.1\"}'" get MACAddress /value
  2. wmic NicConfig where "IPAddress='{^"192.168.56.1^"}'" get MACAddress /value
  3. wmic NicConfig where "IPAddress='{^"192.168.56.1^"}'" get MACAddress /value
  4. wmic NicConfig where "IPAddress='{'"192.168.56.1"'}'" get MACAddress /value
  5. wmic NicConfig where "IPAddress='{""192.168.56.1""}'" get MACAddress /value
  6. wmic NicConfig where "IPAddress='{'"'192.168.56.1'"'}'" get MACAddress /value
  7. wmic NicConfig where "IPAddress='{"""192.168.56.1"""}'" get MACAddress /value
复制代码
查看过以下文档,未能找出相关描述:
http://technet.microsoft.com/zh-cn/library/cc784189(WS.10).aspx

到微软中文论坛提问过,暂时没人给出解答:
http://social.microsoft.com/Foru ... 1-91a0-e6ebca613492

请问,当wmic命令的where子句出现这种花括号中有双引号的值时,正确的语法应该怎样写?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

带花括号的内容其实是数组。
xp上应该没办法,wmic对数组和对象支持不是很好(或者说基本不支持)。
对象比如,win32_process类的create方法可以创建隐藏的进程,objProcess.Create("command", Null, objConfig, intProcessID),在vbs中配置objConfig可以做到隐藏,但wmic无法实现。
vista上不知情况如何。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

终于找到权威解释了~~

TOP

返回列表