标题: [网络连接] [已解决]用bat批处理,如何去掉获得的ip地址前面的空格? [打印本页]
作者: ygqiang 时间: 2011-12-26 16:55 标题: [已解决]用bat批处理,如何去掉获得的ip地址前面的空格?
本帖最后由 ygqiang 于 2011-12-27 18:55 编辑
- for /f "tokens=2 delims=:" %%b in ('ipconfig^|find /i "ip"') do set fsip=%%b
- echo %fsip%
- pause
- if "%fsip%" == " 10.10.9.80" goto set1
- if "%fsip%" == " 10.10.93.87" goto set1
- if "%fsip%" == " 10.10.94.120" goto set1
- if "%fsip%" == " 10.10.127.66" goto set1
- exit
- :set1
- echo %fsip%>fsip.txt
- pause
复制代码
我的目的是先判断ip是否为固定的几个ip:
如果是,就继续下面的操作
如果都不是,就直接退出
作者: ygqiang 时间: 2011-12-26 16:57
本帖最后由 ygqiang 于 2011-12-26 17:07 编辑
现在获取到的ip地址,保存在变量fsip
echo echo %fsip%>fsip.txt
里面的ip地址,前面总是有个空格。
if判断的时候,也要在" 10.10.9.80"前面加个空格,才能正确执行判断。
如果实现:不需要加空格,就能正确执行判断呢?
作者: ygqiang 时间: 2011-12-26 17:21
- for /f "tokens=2 delims=:" %%b in ('ipconfig^|find /i "ip"') do set fsip=%%b
- echo %fsip%
- echo %fsip%>fsip.txt
- pause
- Set fsip=%fsip: =%
- ;去掉ip前面的空格
- echo %fsip%
- echo %fsip%>fsip.txt
- pause
-
- if "%fsip%" == "10.10.9.80" goto set1
- if "%fsip%" == "10.10.93.87" goto set1
- if "%fsip%" == "10.10.94.120" goto set1
- if "%fsip%" == "10.10.127.66" goto set1
- exit
- :set1
- echo %fsip%
- echo %fsip%>fsip.txt
- pause
复制代码
这个方法,可以实现目的。
但如果变量后面也有空格,就会将后面的空格也去掉了。
保留后面的空格要咋做呢
作者: lxzzr 时间: 2011-12-26 19:05
for /f "tokens=2 delims=: "
作者: ArdentMan 时间: 2011-12-26 19:25
本帖最后由 ArdentMan 于 2011-12-26 19:29 编辑
很久没来了~~~- @Echo Off&SetLocal EnableDelayedExpansion
- For /F "tokens=2 delims=:" %%i In ('Ipconfig /All^|Findstr /c:"IP Address"') Do (
- Set "Str=%%i"
- For %%j In (10.10.9.80 10.10.93.87 10.10.94.120 10.10.127.66) Do If "!Str:~1!" EQU "%%j" Set "Flag=a"
- If Defined Flag (
- Echo !Str:~1!
- ) Else (
- Echo No
- )
- )
- Pause>Nul
复制代码
作者: awk 时间: 2011-12-26 20:38
使用冒号和空格作为列分隔符,这样就不用替换空格啦。
作者: ArdentMan 时间: 2011-12-26 20:47
回复 4# lxzzr
版主数错了哦- @Echo Off
- For /F "tokens=14 delims=: " %%i In ('Ipconfig /All^|Findstr /c:"IP Address"') Do Echo %%i
- Pause>Nul
复制代码
作者: lovedjsn 时间: 2011-12-26 22:02
tokens=2取不到IP~~~tokens=14才可以~~~楼上正解~~!
作者: lxzzr 时间: 2011-12-26 23:03
回复 7# ArdentMan
晕,这都被你发现了,其实关键是那个"delims"
作者: awk 时间: 2011-12-26 23:09
回复 8# lovedjsn
不一定tokens=多少才能取到,不同的系统情况不一样。
作者: ygqiang 时间: 2011-12-27 06:51
我是用xp系统。
最好我1楼的代码整体架构别修改。
只要去掉fsip变量前面的空格就可以。
这样if比较判断的时候,后面的ip地址,前面就不需要加空格了。
作者: awk 时间: 2011-12-27 10:21
回复 3# ygqiang
请问你保留后面的空格有什么用途?
作者: ygqiang 时间: 2011-12-27 18:55
就这个贴里里的具体要求,已经可以满足要求了。
多谢楼上各位。谢谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |