![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 23:40 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理中如何逐行读取文本并非将之设为变量? |
| 可打印版本 3,740 / 23 |
| 第16楼 alfredhou | 发表于 2006-04-05 15:17 |
| 初级用户 发帖 34 积分 100 | |
|
3楼的大哥不好意思,我原先没看懂,现在弄明白了,你的是可以执行的。但我现在还是不懂得如何去引用变量的值。我目的是想这样:
先在a.txt中读一行,然后在b.txt中搜索,如果没有这行的内容则添上去,有的话就略过。我发觉是我原先没有表达得准确。对不起。 另外,你提到可以用goto循环,我有点明白其中的思路,也就是先读取一行,然后针对性地跳到相应的程序段。但现在我的问题是我根本不知道如何才可以读取a.txt中的一行? 用FOR是读遍了才停的,我该怎么办? 先谢谢你啦 |
|
| 第17楼 Climbing | 发表于 2006-04-05 18:09 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
是啊,很多时候把问题描述清楚是很重要的,如果你不知道如何描述问题的解决步骤,就把你想做什么说清楚。
|
|
| 第18楼 3742668 | 发表于 2006-04-05 20:57 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
不是我不明白,而是这楼主变幻太快。。
呵呵,你的要求变化得大。。 不想用type的话那就试试findstr+type: findstr /v /g:b.txt a.txt >>tmp.txt type tmp.txt >> b.txt 未经测试,理论上行得通,我想这个方法相比前面的那个方法更适合你。 |
|
| 第19楼 wang6610 | 发表于 2006-04-06 01:09 |
| 银牌会员 发帖 488 积分 1,246 | |
|
有意思!
|
|
| 第20楼 willsort | 发表于 2006-04-06 03:07 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re 3742668:
估计楼主的变量,并非指环境变量,而是指for的替换变量,这样就好理解了。 另外,你的代码确实富于技巧性,稍加修改即可用于提取文本中的指定行,是一个具有普遍意义的算法。 |
|
| 第21楼 alfredhou | 发表于 2006-04-06 16:37 |
| 初级用户 发帖 34 积分 100 | |
|
re:3742668 RE:3742668
大哥,谢谢你!我测试过你的方法,事实证明是可行的!万分感谢! 此外,我在测试的时候遇到一些总是问题: 1) 如果a.txt和b.txt原先都是有内容的话,那运行第一次时结果是和预期目标一致的,但再运行多一次就不一致了。我后来发现是因为tmp.txt第一次是空的,而第二次则有内容了。于是我在你的代码后面加了一条:del tmp.txt 2)如果b.txt原先是全空没有内容的话,那么运行批处理之后它仍然是全空没有内容的,也就是说达不到预期的目标。当然,我可以事情加入一行毫不相干的内容,那就可以达到我的预期目标。但我觉得那不是正道。 请问你有什么更好的解决方法吗? |
|
| 第22楼 alfredhou | 发表于 2006-04-06 16:42 |
| 初级用户 发帖 34 积分 100 | |
|
RE:willsort RE:willsort
版主你好! 你说稍加改造可以提取指定的行,可以予以明示吗?我是一个新手,实在想不出来怎么才可以实现这个目标? findstr /v /g:b.txt a.txt >>tmp.txt type tmp.txt >> b.txt 请告诉我改造后的代码吗? 谢谢 |
|
| 第23楼 3742668 | 发表于 2006-04-06 18:34 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
寒一个先。
其实你想实现的东东几篇回贴里面都有了,只不过你没能把它们结合起来而已。 关于你的问题: 1) 这个不算问题。 2) 用set /p tmpvar=<b.txt来获得,然后用if defined tmpvar来判断是否为空 最后,再汗一个,willsort说的稍加改造并非指的是type+findstr的那段,而是前面的for,呵呵,建议你多翻翻老贴多运行command /?。 |
|
| 第24楼 ke | 发表于 2006-10-02 17:08 |
| 新手上路 发帖 2 积分 4 | |
|
好帖,3742668版主真是热心!
|
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |