Board logo

标题: 【求助】获取Ip地址串后无法字符串处理,求教 [打印本页]

作者: kkk4god     时间: 2008-8-1 16:58    标题: 【求助】获取Ip地址串后无法字符串处理,求教

@echo off & setlocal EnableDelayedExpansion
rem get Ip from ipconfig
for /f "delims=: tokens=2" %%i in ('ipconfig ^| find /I "IP Address"') do set Ip=%%i
set Ip=!Ip: =!
echo {!Ip!}

执行的结果是
}192.168.175.73

请问是为什么?我预想的输出是{192.168.175.73}

我实际是想用这个Ip去做些配置文件的比对,由于上述的问题,导致后续的比对都无法成功。向各位求教,谢谢了!
作者: s11ss     时间: 2008-8-1 17:06

echo {%ip%}

作者: FQ     时间: 2008-8-1 17:21

@echo off & setlocal
rem get Ip from ipconfig
for /f "delims=: tokens=2" %%i in ('ipconfig ^| find /I "IP Address"') do set Ip=%%i
set Ip=%Ip: =%
echo {%Ip%}

作者: kkk4god     时间: 2008-8-2 13:33
谢谢楼上的解答,为什么用了变量延迟后反而得不到正确结果呢,能否给我再指点迷津下,谢谢啦!
作者: obsolete     时间: 2008-8-2 14:13
楼主可以先改成 echo {!Ip!}>>output.txt,
用记事本打开后可以看到有一个黑方块吧,不可见字符。
用UltraEdit打开后看到这个黑方块是个回车0D,它会把光标移到行首,并输出其后的内容。

%%忽略了不可见字符,事实上,%%没有完全显示环境变量的能力,比如环境变量包含了一个换行,%%也只能显示第一行的内容。
作者: obsolete     时间: 2008-8-2 14:15
另外一点就是,echo到控制台会解释执行控制字符(或不可见字符),并不是字符串本身。echo到文件可能可以保留原字符串。
作者: katamoto     时间: 2008-8-2 14:23
直接
echo %ip%
就可以了。
作者: spy616     时间: 2009-3-3 11:55
又学一招