[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样取字符?

我想把ipconfig这个命令其中的
IP Address. . . . . . . . . . . . : 192.168.243.18
这行的192.168.243.18追加入1.txt该怎么写?我用|find和 for命令就是不能实现。

  1. @echo off
  2. for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP"') do (
  3. for %%j in (%%i) do echo %%j>>1.txt
  4. )
  5. pause
复制代码
静水流深...

TOP

@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 编辑 ]

TOP

回复 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 编辑 ]
静水流深...

TOP

  1. for /f "tokens=15" %%i in ('ipconfig /all^|find "IP Address"') do echo %%i>>1.txt
复制代码

TOP

返回列表