![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 20:40 |
共 47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 用for如何分离出带汉字列的文件中想要的列 |
| 可打印版本 793 / 8 |
| 第1楼 skystar65 | 发表于 2008-09-24 15:23 |
| 初级用户 发帖 12 积分 27 | |
|
用for如何分离出带汉字列的文件中想要的列 有个1.txt文档,里面内容摘录一部分如下:
2 博 克 图 50632 48.77 121.92 3 海 拉 尔 50527 49.22 119.75 4 图 里 河 50434 50.45 121.70 现在我想把第三列,也就是50623那列分离出来,写入2。txt文档。 for语句如此: for /f "tokens=3 delims= " %i in (1.txt) do >> 2.txt echo\%i 分离结果乱七八糟,细细看了语句,明显是汉字之间的空格干扰了delims的分离作用。 有没有什么好的办法能把这个问题解决? [ Last edited by skystar65 on 2008-9-24 at 03:25 PM ] |
|
| 第2楼 Batcher | 发表于 2008-09-24 15:33 |
| 初级用户 发帖 16 积分 33 | |
| 第3楼 skystar65 | 发表于 2008-09-24 15:38 |
| 初级用户 发帖 12 积分 27 | |
Originally posted by Batcher at 2008-9-24 03:33 PM: 这个代码还是不行,那几个例子只是我随时摘录的,实际上汉字行是地名,有三个字,也有四个字,示例如下: 6 齐齐哈尔 50745 47.38 123.92 7 海 伦 50756 47.43 126.97 8 富 锦 50788 47.23 131.98 9 佳 木 斯 50873 46.49 130.17 10 鸡 西 50978 45.28 130.95 11 哈 尔 滨 50953 45.75 126.77 12 牡 丹 江 54094 44.57 129.60 |
|
| 第4楼 Batcher | 发表于 2008-09-24 15:48 |
| 初级用户 发帖 16 积分 33 | |
| 第5楼 skystar65 | 发表于 2008-09-24 15:59 |
| 初级用户 发帖 12 积分 27 | |
Originally posted by Batcher at 2008-9-24 03:48 PM: |
|
| 第6楼 Batcher | 发表于 2008-09-24 16:03 |
| 初级用户 发帖 16 积分 33 | |
|
哥们,咋个不行法?
C:\Test>type 1.txt |
|
| 第7楼 skystar65 | 发表于 2008-09-24 16:14 |
| 初级用户 发帖 12 积分 27 | |
Originally posted by Batcher at 2008-9-24 04:03 PM: 兄弟,你的思路挺好的,倒数过来,把汉字掠过,可是我这边执行起来确实问题很多。 我把原文件1.txt传上来,你可以在你那边测试下。 附件 1.txt (5.67 KiB) |
|
| 第8楼 Batcher | 发表于 2008-09-24 16:23 |
| 初级用户 发帖 16 积分 33 | |
|
你的文本列之间是用制表符tab分割的
论坛程序会把制表符转换成8个空格 运行下面的代码之前请自行把delims=后面的8个空格改成1个制表符 |
|
| 第9楼 skystar65 | 发表于 2008-09-24 16:42 |
| 初级用户 发帖 12 积分 27 | |
Originally posted by Batcher at 2008-9-24 04:23 PM: |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |