标题: [文件操作] 批处理怎样取字符? [打印本页]
作者: kanlianhui 时间: 2008-6-17 13:28 标题: 批处理怎样取字符?
我想把ipconfig这个命令其中的
IP Address. . . . . . . . . . . . : 192.168.243.18
这行的192.168.243.18追加入1.txt该怎么写?我用|find和 for命令就是不能实现。
作者: 梦想种子 时间: 2008-6-17 13:58
- @echo off
- for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP"') do (
- for %%j in (%%i) do echo %%j>>1.txt
- )
- pause
复制代码
作者: kanlianhui 时间: 2008-6-17 14:05
@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP"') do (
for %%j in (%%i) do echo %%j>>1.txt
)
pause
楼上的那个 %%i的值会是不是两个吗? :前的一个和:后的一个?????????
我也问道一个
@echo off
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo %ip% >>1.txt
pause
不过~ tokens=15 这里不太明白,为什么是15???什么意思????
[ 本帖最后由 kanlianhui 于 2008-6-17 14:14 编辑 ]
作者: 梦想种子 时间: 2008-6-17 14:23 标题: 回复 3楼 的帖子
运行 'ipconfig ^| find /i "ip address"' 这句后,得到:
IP Address. . . . . . . . . . . . : 192.168.1.102
for /f 中没有delims参数,那么空格就是其中一个默认值,即以空格为分隔符。
所以,假如tokens=1,则得到IP;tokens=2,则得到Address.;tokens=3,则得到.
依此类推,tokens=15,就得到192.168.1.102了。
IP/Address././././././././././././:/192.168.1.102
用/代替空格,可分成15份,当然最后一份,即第15份就是我们所需的内容了。
--------------
同样,2楼的代码中,tokens=2 delims=:
就是把 IP Address. . . . . . . . . . . . : 192.168.1.102分成
IP Address. . . . . . . . . . . . / 192.168.1.102
tokens=2就是取第2份内容,即" 192.168.1.102"。
第二个for语句只是为了去掉IP地址前面的一个小空格。
[ 本帖最后由 梦想种子 于 2008-6-17 14:27 编辑 ]
作者: lovelymorning 时间: 2008-6-18 03:56
- for /f "tokens=15" %%i in ('ipconfig /all^|find "IP Address"') do echo %%i>>1.txt
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |