无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3834|回复: 9
打印 上一主题 下一主题

[求助] 批处理读取文本字符串

[复制链接]
跳转到指定楼层
1#
发表于 2015-7-31 12:44:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fuldho 于 2015-7-31 12:45 编辑

1.txt如下:

cd        1:2                  wdr                    3424         972

怎样读取 "1:2" 变量

不是固定字符,多个空格也不固定,
2#
发表于 2015-7-31 15:22:21 | 只看该作者
用 nset 读取 该行中第2个单词。
回复

使用道具 举报

3#
发表于 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
回复

使用道具 举报

4#
 楼主| 发表于 2015-8-1 22:38:11 | 只看该作者
楼上的
特出空格这样搞不定的

QQ图片20150801223627.jpg (47.25 KB, 下载次数: 97)

QQ图片20150801223627.jpg
回复

使用道具 举报

5#
发表于 2015-8-2 10:54:19 | 只看该作者
原来是cmd 下的操作啊。那简单多了:

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


回复

使用道具 举报

6#
 楼主| 发表于 2015-8-2 12:38:14 | 只看该作者
本帖最后由 fuldho 于 2015-8-2 12:39 编辑

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

有兴趣测试一下

Part.rar

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

点评

原来 间隔符 不是空格 而使 tab  详情 回复 发表于 2015-8-3 08:23
回复

使用道具 举报

7#
发表于 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
回复

使用道具 举报

8#
 楼主| 发表于 2015-8-3 09:01:16 | 只看该作者
dos时代菜鸟 发表于 2015-8-3 08:23
原来 间隔符 不是空格 而使 tab

谢谢
我已经搞定,还要考虑间隔和空格双重问题
回复

使用道具 举报

9#
发表于 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值呢?
补:原来要设变量延迟,已解决。

回复

使用道具 举报

10#
发表于 2015-11-7 17:29:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-23 11:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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