无忧启动论坛

 找回密码
 注册
搜索

批处理读取文本字符串

查看数: 4725 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-7-31 12:44

正文摘要:

本帖最后由 fuldho 于 2015-7-31 12:45 编辑 1.txt如下: cd        1:2                  wdr        &nb ...

回复

ylh448 发表于 2015-11-7 17:29:31
提示: 作者被禁止或删除 内容自动屏蔽
假大空 发表于 2015-10-23 21:20:29
本帖最后由 假大空 于 2015-10-26 23:05 编辑

@dos时代菜鸟:

想问下如果多行,只取第一行该如何弄?比如我有3张网卡。
for /f "tokens=15 delims=: " %%i in ('ipconfig ^| find /i "IPv4"') do @echo %%i
用冒号空格作间隔符,取得3张网卡的IP地址。但是我只想取第一张网卡的IP该如何写批处理呢?如果将变量赋值给新变量,只能得到最后一张网卡的IP,比如
for /f "tokens=15 delims=: " %%i in ('ipconfig ^| find /i "IPv4"') do set ip=%%i
@echo 获取的网卡IP为:%ip%

请问该怎样取得第一张或者第二张网卡的IP值呢?
补:原来要设变量延迟,已解决。

fuldho 发表于 2015-8-3 09:01:16
dos时代菜鸟 发表于 2015-8-3 08:23
原来 间隔符 不是空格 而使 tab

谢谢
我已经搞定,还要考虑间隔和空格双重问题
dos时代菜鸟 发表于 2015-8-3 08:23:29
本帖最后由 dos时代菜鸟 于 2015-8-3 08:32 编辑
fuldho 发表于 2015-8-2 12:38
我试过搞不定,不过我已经找到办法解决了,谢谢大家了。

有兴趣测试一下


原来 间隔符 不是空格 而使 tab

part.7z (268 Bytes, 下载次数: 6)


其实 在 cmd 下 直接输入
  1. for /f "tokens=2" %c in (part.txt) do echo %c
复制代码

就可以 了,for 默认将 空格 、tab 当作分隔符。

点评

谢谢 我已经搞定,还要考虑间隔和空格双重问题  详情 回复 发表于 2015-8-3 09:01
fuldho 发表于 2015-8-2 12:38:14
本帖最后由 fuldho 于 2015-8-2 12:39 编辑

我试过搞不定,不过我已经找到办法解决了,谢谢大家了。

有兴趣测试一下

Part.rar

116 Bytes, 下载次数: 24, 下载积分: 无忧币 -2

点评

原来 间隔符 不是空格 而使 tab  详情 回复 发表于 2015-8-3 08:23
dos时代菜鸟 发表于 2015-8-2 10:54:19
原来是cmd 下的操作啊。那简单多了:

for /f "tokens=1,2 delims= " %%i in (1.txt) do(echo %%j)


wang_966 发表于 2015-7-31 21:21:52
本帖最后由 wang_966 于 2015-7-31 21:52 编辑

方法1:
写一个 0.BAT 内容如以下二行
for /f "tokens=1,2 delims= " %%i in (1.txt) do set j=%%j
echo %j%



(如果是每一行取得第二栏)方法2:
如何利用 仿unix/linux命令 sed 一次替换文字中的 "某些相似性的字串" ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=362520


sed -e "s/[!-~][!-~]*  *\([!-~][!-~]*\)  *.*/\1/" < 1.txt > output.txt
dos时代菜鸟 发表于 2015-7-31 15:22:21
用 nset 读取 该行中第2个单词。

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-22 17:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表