标题: [特效代码] [已解决]批处理如何查找文本中含有指定字符串nnf的行并输出到新的文本 [打印本页]
作者: ohar 时间: 2009-7-31 11:08 标题: [已解决]批处理如何查找文本中含有指定字符串nnf的行并输出到新的文本
本帖最后由 pcl_test 于 2016-8-4 13:31 编辑
我想查找123.txt中含有字符nnf的行,并设置为变量,输出到112.txt
123.txt内容是
(nnf= 0.12 ;)
qwe 021
dsagggggggggggaga
(nnf= -452.2 ;)
ffffddd
(nnf= -0.15 ;)
2454253543543
我的代码- for /f %%i in ('type 123.txt^|findstr /i "nnf"') do set o=%%i
- set o=%i:* =%
- set o=%i:~5,-2%
- echo %o%>>112.txt
复制代码
执行到第二行就有问题了,因为在查找行中含有空格
我想要的是结果是,112.txt内容为
请各位帮帮忙
作者: inittab 时间: 2009-7-31 11:28
(nnf= 0.12 ;) 这行格式都相同吗 如是就简单了
for /f "tokens=2" %%i in ('type 123.txt^|findstr /i "nnf"') do echo %%i>>112.txt
作者: ohar 时间: 2009-7-31 11:48 标题: 回复 2楼 的帖子
恩,就是这样
不知道 "tokens=2" 是什么意思
如果我想将寻找到的第1个值输入到1.txt ,第2个值输入到a.txt
,第3个值输入到q.txt
又该怎样改呢
谢谢回复
作者: Lumiere 时间: 2009-7-31 11:51 标题: 回复 3楼 的帖子
你要输入到的目标文本名字没有规律的么,东一个西一个的话就只等逐条重定向。没多大意义。
作者: inittab 时间: 2009-7-31 12:08
完整应该如下:
for /f "tokens=2 delims= " 以空格为分隔符,输出第二列。 空格为分隔时可省略delims= 。这样就把第一列nnf= 和第三列 ;过滤掉,只取第二列数字部分赋给%%i 。
如果每个变量值输出到不同文件。要批处理的话,这些文件必须要有一定的规律,否则只有手动处理或最机械的办法。如下例可供你参考一下。- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2" %%i in ('type 123.txt^|findstr /i "nnf"') do (
- set /a n+=1
- echo;%%i>>a!n!.txt
- )
- pause
复制代码
它将把第一个输出到a1.txt ,第二个输出到a2.txt 依次类推。如果没规律可循也可以加if 判断(笨办法)
if !n! equ 1 echo;%%i 第一个值处理
if !n! equ 2 echo;%%i 第二个值处理
..
由你的意图来决定代码
作者: ohar 时间: 2009-8-1 10:50 标题: 真诚感谢两位的回贴
我已知道 tokens delims 的大概用法了
又有了新贴http://bbs.bathome.net/viewthread.php?tid=5413&extra=page%3D1&frombbs=1
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |