![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-30 13:04 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 未结:过滤一个文件里所有字符串两头的TAB和空格? |
| 可打印版本 2,391 / 15 |
| 第1楼 uiopuiop | 发表于 2008-08-21 21:01 |
| 中级用户 发帖 211 积分 400 | |
|
未结:过滤一个文件里所有字符串两头的TAB和空格? 想的我头发都掉了两根,没想出来简单的方法。
一个test.txt 文件里字符串直接都用逗号“,”分隔的,有4列字符串。 但是每个字符串两头可能会有N个TAB或空格,需要把他们过滤掉。但咬保留字符串里的空格。批处理读取的时候可以忽略空行。 高手请帮忙啊!多谢! ****** test.txt 测试文件,请见附件******** 次文件是BAT的配置文件,BAT读取里面的数据做相应操作。 相信肯定会很有用。 test.txt ------------------------------------------------------------------------------- test 1, , , test 2 , test 2 , test 3 , test 4 test 2 , test 2 , test 3 , test 4 test 2,ss , , test2 , test 2 , test 3 , test 4 ------------------------------------------------------------------------------- [ Last edited by uiopuiop on 2008-8-25 at 10:36 PM ] 附件 TEST.TXT (1.3 KiB) |
|
| 第2楼 lxmxn | 发表于 2008-08-22 01:54 |
| 版主 发帖 4,938 积分 11,386 | |
|
注意,第2个set其实是set name=!name:=!。 [ Last edited by lxmxn on 2008-8-22 at 01:57 AM ] |
|
| 第3楼 FQ | 发表于 2008-08-22 13:25 |
| 社区乞丐 发帖 37 积分 -61 | |
|
通用性比较好,不过有一个弊病,哎
|
|
| 第4楼 abcd | 发表于 2008-08-22 14:22 |
| 银牌会员 发帖 739 积分 1,436 | |
|
直接CSV里面VBA
Dim r As Range For Each r In UsedRange.Cells r.Value = Trim(r.Value) Next |
|
| 第5楼 uiopuiop | 发表于 2008-08-22 20:43 |
| 中级用户 发帖 211 积分 400 | |
|
回版主,先谢一下!
不过发现你的算法有时候会有问题,当csv 文件有几项的值为空时,就会出错: 数据会发生错位。 例如 reqwre, reqre, reqre, rewqre rere, , , tt, tt, add,ddsa,fdaf,dfafd [ Last edited by uiopuiop on 2008-8-22 at 08:57 PM ] |
|
| 第6楼 uiopuiop | 发表于 2008-08-22 20:50 |
| 中级用户 发帖 211 积分 400 | |
Originally posted by FQ at 2008-8-22 01:25 PM: |
|
| 第7楼 FQ | 发表于 2008-08-22 21:06 |
| 社区乞丐 发帖 37 积分 -61 | |
|
我不知道怎么不能用了???
|
|
| 第8楼 uiopuiop | 发表于 2008-08-22 22:40 |
| 中级用户 发帖 211 积分 400 | |
|
回7楼,可能代码贴的有问题,能否传个附件上来,谢了!
|
|
| 第9楼 flyinspace | 发表于 2008-08-22 23:13 |
| 银牌会员 发帖 517 积分 1,206 | |
|
没那么麻烦呀?
|
|
| 第10楼 uiopuiop | 发表于 2008-08-22 23:19 |
| 中级用户 发帖 211 积分 400 | |
Originally posted by FQ at 2008-8-22 09:06 PM: 有些字段本来含有*号的,结果你把呆*号的字段都过滤了。比如 "SAP*" 就没了。 |
|
| 第11楼 lxmxn | 发表于 2008-08-23 01:33 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by uiopuiop at 2008-8-22 20:43: 上面的代码只是按照楼顶的要求写的,没考虑空值的情况,如果不介意的话可以试试用sed来做。 [ Last edited by lxmxn on 2008-8-23 at 01:52 AM ] |
|
| 第12楼 uiopuiop | 发表于 2008-08-23 12:26 |
| 中级用户 发帖 211 积分 400 | |
Originally posted by lxmxn at 2008-8-23 01:33 AM: |
|
| 第13楼 abcd | 发表于 2008-08-23 19:12 |
| 银牌会员 发帖 739 积分 1,436 | |
|
VBA
Dim r As Range For Each r In UsedRange.Cells r.Value = Replace(Trim(r.Value), " ", "") Next |
|
| 第14楼 abcd | 发表于 2008-08-23 19:13 |
| 银牌会员 发帖 739 积分 1,436 | |
|
csv文件用VBA方便些。
|
|
| 第15楼 uiopuiop | 发表于 2008-08-23 19:48 |
| 中级用户 发帖 211 积分 400 | |
Originally posted by abcd at 2008-8-23 07:13 PM: CSV 文件是我批处理的配置文件,批处理读取数据并执行相应操作。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |