Board logo

标题: [系统相关] [已解决]批处理如何获取命令返回结果中的第一行内容 [打印本页]

作者: Speed乄Jay    时间: 2017-12-16 15:18     标题: [已解决]批处理如何获取命令返回结果中的第一行内容

取IP地址,遇到难题,求帮助。
  1. for /f "tokens=4" %%f in ('route print^|findstr 0.0.0.0.*0.0.0.0')do (set IP=%%f)
复制代码
我想取第一行0.0.0.0的 IP,但是WIN7  route print 后 有两条0.0.0.0 最后echo %IP% 的结果是 网关的地址 。
有没有办法只取第一行的0.0.0.0  求大神帮忙。
作者: /zhqsystem/zhq    时间: 2017-12-16 17:19

方法1:标签循环有效,无标签会终止代码注意
call:1
echo,%ip%
pause
:1
for /f "tokens=4" %%f in ('route print^|findstr 0.0.0.0.*0.0.0.0')do set IP=%%f&&goto:eof
goto:eof
方法2:可以连续执行
set "ip="
for /f "tokens=4" %%f in ('route print^|findstr 0.0.0.0.*0.0.0.0')do if not defined ip set IP=%%f

避开FIND搜索
set "ip="
for /f "tokens=1,2,3,4,*" %%f in ('route print')do if /i "%%f"=="0.0.0.0" if not defined ip set "ip=%%i"&&set "网关=%%h"&&set "跃点=%%j"
作者: Speed乄Jay    时间: 2017-12-18 16:58

回复 2# /zhqsystem/zhq


    谢谢大神,试过可以 。太感谢了 。
作者: Speed乄Jay    时间: 2017-12-18 17:34

回复 2# /zhqsystem/zhq


   学习了,多谢指导。
作者: 窄口牛    时间: 2018-6-6 16:23

可能dhcp和手动还有区别?




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