Board logo

标题: 获取网卡物理的地址的批处理在win7为何不能使用? [打印本页]

作者: 骑牛挂马    时间: 2012-9-2 21:06     标题: 获取网卡物理的地址的批处理在win7为何不能使用?

以下代码在xp里可以正常使用
  1. echo 正在获取本地网卡物理地址...
  2. for /f "tokens=1,2 delims=:" %%i in ('wmic nic where "netconnectionid='本地连接'" get macaddress') do set q=%%i-%%j
  3. echo %q%
  4. pause
复制代码
但是在2003和7里面却不能够使用。
  1. - \set q=macaddress
  2. c:/q=00-00
  3. - \set q=
  4. c:/echo -
  5. -
复制代码
请问这是怎么了,要怎么修改。
作者: CrLf    时间: 2012-9-2 22:52

win7 下的 wmic 输出中多了俩回车,可以用 findstr 过滤
  1. for /f "tokens=1,2 delims=:" %%i in ('wmic nic where "netconnectionid='本地连接'" get macaddress^|findstr "['-Z]"') do set q=%%i-%%j
  2. echo %q%
  3. pause
复制代码

作者: 骑牛挂马    时间: 2012-9-3 17:09

回复 2# CrLf


    感谢巡查的帮助,不过还是不行,一样是多输出回车。

   有网友帮我弄好了:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 正在获取本地网卡物理地址...
  4. for /f "tokens=1,2,3,4,5,6 delims=:" %%i in ('wmic nic where  "netconnectionid='本地连接'" get macaddress') do (set /a a+=1
  5. if !a!==2 set "CardMac_=%%i-%%j-%%k-%%l-%%m-%%n")
  6. echo !CardMac_!
  7. pause
复制代码

作者: apang    时间: 2012-9-4 07:22

本帖最后由 apang 于 2012-9-4 07:23 编辑
  1. @echo off
  2. echo 正在获取本地网卡物理地址...
  3. for /f %%i in ('wmic nic where  "netconnectionid='本地连接'" get macaddress^|find ":"') do set "CardMac_=%%i"
  4. echo %CardMac_::=-%
  5. pause
复制代码

作者: CrLf    时间: 2012-9-4 20:41

getmac
作者: wodesitanfu    时间: 2012-9-5 08:12

就找个MAC地址而已,这么麻烦~可以用ipconfig,可以用getmac
作者: forfiles    时间: 2012-9-5 08:15

回复 6# wodesitanfu


    可能楼主是希望写一个XP/2003/Win7通用的代码
作者: wodesitanfu    时间: 2012-9-5 17:30

那ipconfig不能通用吗?
作者: hgnhgzf    时间: 2014-9-30 21:45

本帖最后由 hgnhgzf 于 2014-9-30 21:50 编辑

回复 4# apang
@echo off
echo 正在获取本地网卡物理地址...
for /f %%i in ('wmic nic where  "netconnectionid='本地连接'" get macaddress^|find ":"') do set "CardMac_=%%i"
echo %CardMac_::=-%
pause
请问:如果先扫描局域网内所有机器IP、MAC、机器名等信息列表,存入info.txt文件,然后通过上述代码获取本机MAC,并据此获得info.txt中对应的IP、机器名,自动填入WIN7系统中,该如何写代码?




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2