无忧启动论坛

标题: 获得自己IP的批处理方法 [打印本页]

作者: jasonwang    时间: 2006-11-3 10:48
标题: 获得自己IP的批处理方法
@echo off
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo %ip%
pause

[ 本帖最后由 jasonwang 于 2006-11-3 10:53 AM 编辑 ]
作者: dgxhls    时间: 2006-11-3 12:15
cmd /k ipconfig /all



本地连接IP、动态(当前)IP、网卡地址都有了。
作者: namejm    时间: 2006-11-3 12:47
  我来转帖一个别人写的解析ipconfig命令输出通用函数
  1. @echo off

  2. :: 代码编写:3742668 代码修订:namejm www.cn-dos.net

  3. ::调用格式:
  4. call :select "ip address" "ip"
  5. call :select "Physical Address" "mac"
  6. call :select "Default Gateway" "gateway"
  7. call :select "DNS Servers" "dns"
  8. call :select "Description" "netcard"

  9. :: 演示效果
  10. echo IP:%ip%
  11. echo MAC:%mac%
  12. echo DNS:%dns%
  13. echo GATEWAY:%gateway%
  14. echo NETCARD:%netcard%
  15. pause>nul
  16. goto :eof

  17. ::**************************************************************
  18. ::              解析ipconfig命令输出通用函数
  19. ::**************************************************************
  20. :select
  21.     for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if not "%~2" == "" set "%~2=%%i"
  22. goto :eof
复制代码

[ 本帖最后由 namejm 于 2007-7-19 10:50 AM 编辑 ]
作者: 6618    时间: 2006-11-3 17:41
试了1楼和3楼的两个批处理,机子都进入死环循,提示“管道不存在,写入失败”,CMD窗口猛闪,关也关不掉,本想把图抓下来的,但提示内存不够(256的内存),不知发帖者可曾试过?最后不得不按restart键重启机子!
另,三楼的帖子用goto :eof这个标识,却没:eof这一项,何解?
作者: dgxhls    时间: 2006-11-3 18:08
1楼和3楼的两个批处理,我都运行了,没6618说的情况。1楼的只能获得当前动态IP,3楼的一闪而过,什么也看不见,看来还是有问题。
作者: 6618    时间: 2006-11-3 18:17
难道是我机子的CMD.EXE的问题?——估计是我机子的问题。我的办公的机子是由sp1升级到SP2的,CMD.EXE版本的问题?还是局域IP的问题?还是?暂时弄不明白,下班回家到我家的机子试试。

[ 本帖最后由 6618 于 2006-11-3 06:23 PM 编辑 ]
作者: 6618    时间: 2006-11-3 18:21
就算只输入cmd /k ipconfig /all 命令也会进入死循环,但只输入 ipconfig /all却不会,我在局域网上网,暂不知何原因,请知道的朋友告知。
作者: namejm    时间: 2006-11-3 18:24
  3F的原始代码在判断条件的时候,少了个 not ,现在已经修订,其他的没有任何问题。为了演示效果,我加上了 echo 和 pause 语句,各位可以查看效果。至于 goto :eof 语句,则是CMD里的一个技巧,在 call 标签段的时候必须使用这条语句,意思是跳转到批处理文件的末尾——注意,仅起到跳转到文件末尾的作用而已,此时不能用 exit 命令来替换,而第一个 goto :eof 却可以用 exit 来替换。

[ 本帖最后由 namejm 于 2006-11-3 06:55 PM 编辑 ]
作者: 6618    时间: 2006-11-3 18:30
我把我的CMD传到这里来,楼上的朋友(呵呵,朋友可是DOS联盟的版主哦)能否试一下是不是我的CMD.EXE的问题?

cmd.rar

107.67 KB, 下载次数: 85, 下载积分: 无忧币 -2


作者: namejm    时间: 2006-11-3 18:41
  把你上传的 CMD.exe 和我机子上的 CMD.exe对比了一下,发现版本号都是 5.1.2600.2180,查看了两者的MD5值和CRC32值,完全一样,可以排除版本的问题。至于究竟是什么问题,暂时不得而知。
作者: dgxhls    时间: 2006-11-3 19:15
与我的也一样。
722a247acb86960a708528120759266d   cmd.exe
722a247acb86960a708528120759266d   cmd.exe
作者: 6618    时间: 2006-11-3 19:17
原帖由 namejm 于 2006-11-3 06:41 PM 发表
  把你上传的 CMD.exe 和我机子上的 CMD.exe对比了一下,发现版本号都是 5.1.2600.2180,查看了两者的MD5值和CRC32值,完全一样,可以排除版本的问题。至于究竟是什么问题,暂时不得而知。
原帖由 打狗协会理事 于 2006-11-3 07:15 PM 发表
与我的也一样。
722a247acb86960a708528120759266d   cmd.exe
722a247acb86960a708528120759266d   cmd.exe


谢谢!我已到了家,用办公室的机子的CMD代替我家机子的CMD.EXE运行上面的三个批处理,都正常,的确与CMD.EXE的版本无关,看来是我办公的机子的问题,至于原因出在什么地方,还需查找。

[ 本帖最后由 6618 于 2006-11-3 07:24 PM 编辑 ]
作者: 6618    时间: 2006-11-3 19:22
我在家里的机子的CMD验证码不一样,但两个都运行正常。

6618.JPG (18.7 KB, 下载次数: 76)

6618.JPG





欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3