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

获取网卡物理的地址的批处理在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. -
复制代码
请问这是怎么了,要怎么修改。
精英精的跟鹰一样。

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
复制代码

TOP

回复 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
复制代码
精英精的跟鹰一样。

TOP

本帖最后由 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
复制代码

TOP

getmac

TOP

就找个MAC地址而已,这么麻烦~可以用ipconfig,可以用getmac

TOP

回复 6# wodesitanfu


    可能楼主是希望写一个XP/2003/Win7通用的代码

TOP

那ipconfig不能通用吗?

TOP

本帖最后由 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系统中,该如何写代码?

TOP

返回列表