标题: [文本处理] 请教大神!批处理获取文件中的IP地址并赋值成为变量 [打印本页]
作者: ynqznet 时间: 2017-5-24 11:21 标题: 请教大神!批处理获取文件中的IP地址并赋值成为变量
有一个文件名称为iennfr2012.drv,其中第一行内容为IP=192.168.1.250
现在我想实现的效果是,读取文件内容,并且把IP这行的数字部分(也就是去掉”IP=“这3个字符)读取并赋值成为变量。
现在我只知道 type iennfr2012.drv | findstra ip 但是这样读出来的结果不是纯数字,不能继续我后面的操作。
谢谢!
作者: taofan712 时间: 2017-5-25 16:21
本帖最后由 taofan712 于 2017-5-25 16:32 编辑
- @echo off
- for /f "tokens=2 delims==" %%a in ('findstr /ib "ip=" iennfr2012.drv') do echo;%%a
- pause
复制代码
作者: WindCat 时间: 2017-5-25 20:43
- @echo off
- title 取IP
- :: By:Neko Piao, 2017-05-25
-
- set fileName=iennfr2012.drv
- ::set fileName=%1
-
- ::取第 一 行
- setlocal enabledelayedexpansion
- for /f "tokens=1 delims=" %%i in (%fileName%) do (
- set /a n+=1
- if !n!==1 set Line_of_text=%%i
- )
- setlocal disabledelayedexpansion
- set /a n=0
- ::不要问我为什么这个set在这里,遇到过莫名bug要放到这里重置.虽然这次不需要,不过也不妨碍什么,请让它就在这里吧owo
-
- ::取前后字段
- for /f "tokens=2 delims==" %%a in ("%Line_of_text%") do (
- set "ip=%%a")
-
- for /f "tokens=1-4 delims=." %%a in ("%ip%") do (
- set "ip_1=%%a"&set "ip_2=%%b"&set "ip_3=%%c"&set "ip_4=%%d"
- )
-
- echo %ip_1%.%ip_2%.%ip_3%.%ip_4%
- pause
复制代码
作者: ShowCode 时间: 2017-5-25 20:56
回复 3# WindCat
set /a n=0
/a 选项用于数学计算。
变量初始化是单纯的赋值操作,不需要 /a 选项。
作者: ynqznet 时间: 2017-6-6 11:57
谢谢2位大神的解答!十分感谢!
作者: 老刘1号 时间: 2017-6-6 19:53
回复 4# ShowCode
主要因为批处理是弱类型语言
不需要声明变量类型
不过即使将a赋值为字符串碰到数值运算时Set也可以自动改变类型
个人比较习惯Set/a重置,不管有没有多次调用都会习惯性的重置
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |