![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 07:55 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 多条件提取数据II |
| 可打印版本 929 / 7 |
| 第1楼 hgx126 | 发表于 2009-02-05 12:27 |
| 初级用户 发帖 80 积分 100 | |
|
多条件提取数据II 不好意思,我又要麻烦大家了。由于是新手上路,求助的时候比较多,请大家多见谅!
上次大家帮助我解决了同时多满足多个条件提取数据的问题,这次请大家再次帮偶一个忙: 同样是一目录下有多个文本,其中一个内容如下: 现要将满足以下其中任意一个条件的该行数据提取到b.txt。(以|为分隔符) 1、第三列数据的前四位为“1231”; 2、第三列数据的前四位为“1241”; 3、第三列数据的前四位为“1254”; 求一批处理,批量将该目录下的所有文本里满足条件的数据提取出来。求 大家帮忙。 |
|
| 第2楼 yishanju | 发表于 2009-02-05 12:54 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
无非就是那几个命令的改改就能用,经常用到为什么不自己学一学
type *.txt|findstr /r /c:".*[|].*[|]1231.*[|].*[|].*[|].*[|].*" /c:".*[|].*[|]1241.*[|].*[|].*[|].*[|].*" /c:".*[|].*[|]1254.*[|].*[|].*[|].*[|].*" >>b.txt pause |
|
| 第3楼 moniuming | 发表于 2009-02-05 12:59 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
[ Last edited by moniuming on 2009-2-5 at 13:00 ] |
|
| 第4楼 hgx126 | 发表于 2009-02-06 00:57 |
| 初级用户 发帖 80 积分 100 | |
|
感谢moniuming及yishanju兄。
不过我想的是一个文本提取后的数据生成另外一个文件名,而不是将该目录下的的所有文件合并生成一个文件。 最好是在原文件名上加一个前缀。 比如a.txt生成一个新的a.csv或a_new.txt文件。我用了>>%%~n0%.csv或等没成功,是哪里错了? [ Last edited by hgx126 on 2009-2-6 at 22:27 ] |
|
| 第5楼 yishanju | 发表于 2009-02-06 11:18 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
for /r %%i in (*.txt) do (
findstr /r /c:".*[|].*[|]1231.*[|].*[|].*[|].*[|].*" /c:".*[|].*[|]1241.*[|].*[|].*[|].*[|].*" /c:".*[|].*[|]1254.*[|].*[|].*[|].*[|].*" %%i >>%%~ni.cvs ) |
|
| 第6楼 yishanju | 发表于 2009-02-06 11:28 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
for /r %%i in (*.txt) do (
findstr /r /c:".*|.*|1231.*|.*|.*|.*|.*" /c:".*|.*|1241.*|.*|.*|.*|.*" /c:".*|.*|1254.*|.*|.*|.*|.*" %%i >>%%~ni.cvs ) 把命令简化成这样试试看行不行, [ Last edited by yishanju on 2009-2-6 at 11:29 ] |
|
| 第7楼 moniuming | 发表于 2009-02-07 00:02 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
加一个for应该可以了吧,试试?
|
|
| 第8楼 hgx126 | 发表于 2009-02-09 21:16 |
| 初级用户 发帖 80 积分 100 | |
|
谢谢
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |