Board logo

标题: [文本处理] [已解决]批处理如何在XP和WIN7中取ipconfig/all中的同一项结果值? [打印本页]

作者: locoman    时间: 2012-10-12 01:00     标题: [已解决]批处理如何在XP和WIN7中取ipconfig/all中的同一项结果值?

本帖最后由 locoman 于 2012-10-16 01:17 编辑

各位达人好!
    深夜发帖求助,实在急用无奈,请各位达人援手相助,谢谢!!
    我想用同一个批处理文件在校园网各电脑中用ipconfig/all获取所有的网卡物理地址和IP地址备查,但是,由于每台电脑的操作系统版本不同,ipconfig/all执行后得到的内容表现形式不同,有点问题,
比如:WIN XP中执行ipconfig/all得到的内容值是 英文的,而WIN 7中执行ipconfig/all得到的内容是 中文的。
   
    我在WIN XP中用ipconfig/all|findstr Address>>d:\info.txt,获取该机的网卡物理地址和IP地址。
    在WIN 7中得用ipconfig/all|findstr 地址>>d:\info.txt,才能获取该机的网卡物理地址和IP地址。

这样的麻烦是得写两个批处理文件让执行人去根据自己的操作系统不同而确定执行相应的批处理文件才能正确获取所需,但是,有些人却不能或故意不正确选择执行。

我想求助达人们:
一、只写一个批处理文件,ipconfig/all|findstr Address|地址>>d:\info.txt 。这样就不管操作系统是什么,只要执行ipconfig/all后,发现包含“Address”或者“地址”字样的内容都保存到>>d:\info.txt中。
不知这样写法是否正确?或者在这两种系统中都能正确执行?因为我电脑只是WIN XP 的没有WIN 7测试。

谢谢达人们指正和测试,谢谢了!!!
作者: wc726842270    时间: 2012-10-12 05:34

用“||”
只要执行ipconfig/all后,发现包含“Address”或者“地址”字样的内容都保存到>>d:\info.txt中。
一开始想用DOSKEY来写了。但没有成功,不过还有其它方法(比如利用运行也就是可执行路径,快捷方试,直接把P放在桌面上等等)
作者: locoman    时间: 2012-10-12 08:06

本帖最后由 locoman 于 2012-10-12 08:09 编辑

回复 2# wc726842270


    谢谢大校的回复!没明白大校的意思,期待大校同志进一步的诠释和解决!

   请各位高人帮助我!
作者: locoman    时间: 2012-10-12 08:52

是否可以先行用“ver”进行版本判别,再条件执行。
我是这样,但写不来。
作者: apang    时间: 2012-10-12 09:16

  1. ipconfig /all|findstr /i "地址 Address">d:\info.txt
复制代码

作者: jakorzhang    时间: 2012-10-12 09:32

本帖最后由 jakorzhang 于 2012-10-12 09:41 编辑

@echo off
(for %%a in (address 地址) do ipconfig /all|find /i "%%a")>d:\info.txt
start info.txt
pause
其中 start是个显示作用  pause是停止 可以去掉 根据你的情况 好像去掉更合适
作者: locoman    时间: 2012-10-15 13:51

回复 5# apang
谢谢大校的热情帮助!
代码简单,实测在WIN XP中运行能得到所需。但没有在WIN 7中测,有WIN 7 的朋友如果有空帮到在WIN 7实测一下,看能否正常运行并得到所需。

我在WIN XP中实测的结果:
      Physical Address. . . . . . . . . : F0-4D-A2-95-A8-9D

        Physical Address. . . . . . . . . : 1C-65-9D-66-0C-1E

        IP Address. . . . . . . . . . . . : 192.168.1.3

        Physical Address. . . . . . . . . : 00-53-45-00-00-00

        IP Address. . . . . . . . . . . . : 219.152.34.57
作者: ygqiang    时间: 2012-10-16 08:15

回复  apang
谢谢大校的热情帮助!
代码简单,实测在WIN XP中运行能得到所需。但没有在WIN 7中测,有WIN ...
locoman 发表于 2012-10-15 13:51


ipconfig /all|findstr /i "地址 Address">d:\info.txt
    win7 32系统下,运行结果是:

   物理地址. . . . . . . . . . . . . : 00-24-1D-AD-89-36
   本地链接 IPv6 地址. . . . . . . . : fe80::c1de:5658:43e8:b1d1%11(首选)
   IPv4 地址 . . . . . . . . . . . . : 10.10.96.173(首选)
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   IPv6 地址 . . . . . . . . . . . . : 2001:0:4137:9e76:2ccb:2cfa:f5f5:9f52(首选)
   本地链接 IPv6 地址. . . . . . . . : fe80::2ccb:2cfa:f5f5:9f52%13(首选)
作者: jakorzhang    时间: 2012-10-16 09:43

我去 我的帮忙您就直接无视?怎么说我也是怀着一腔热血与激情想了想才给您回复的。。。
作者: forfiles    时间: 2012-10-16 13:10

6楼的代码能满足需求吗?
作者: 539956485    时间: 2012-10-16 15:29

  1. @echo off
  2. title ip
  3. mode con cols=50 lines=10
  4. color 0a
  5. ver | find "5.1." > NUL &&  goto show51
  6. ver | find "6.1." > NUL &&  goto show61
  7. :show51
  8. @echo 当前系统是:[WindowsXP ]
  9. for /f "tokens=2 delims=:" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
  10. echo ==============================
  11. echo %ip%
  12. echo ==============================
  13. pause & exit
  14. :show61
  15. @echo 当前系统是:[Windows7 ]
  16. for /f "tokens=2 delims=:" %%i in ('ipconfig ^| find /i "ipv4 地址"') do set ip=%%i
  17. echo ==============================
  18. echo 您的ip地址为:%ip%
  19. echo ==============================
  20. pause & exit
复制代码
回显显示ip 要提取 可以改一改
作者: jakorzhang    时间: 2012-10-16 16:47

回复 10# forfiles

完全可以
作者: locoman    时间: 2012-10-17 23:57

本帖最后由 locoman 于 2012-10-18 00:00 编辑
我去 我的帮忙您就直接无视?怎么说我也是怀着一腔热血与激情想了想才给您回复的。。。
jakorzhang 发表于 2012-10-16 09:43



    呵呵!实在对不起您!我一看那串简单的代码能解决问题了后就去单位测试去了,没有及时测试您的代码。

    还好 Batcher 给您直接加分了!Batcher一直都是敬业的、公正的,他眼睛雪亮着呢,能得到他的加分是最大的肯定和关注了。

    谢谢您的热情与激情,请谅解我的不是!!




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