![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 07:33 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助二:删除指定文本中以sw.bmp开头的行并保留空行 |
| 可打印版本 776 / 4 |
| 第1楼 suntb | 发表于 2007-05-16 08:54 |
| 高级用户 发帖 277 积分 581 | |
|
求助二:删除指定文本中以sw.bmp开头的行并保留空行 参考了分类帖子中类似的情况
http://www.cn-dos.net/forum/viewthread.php?tid=27582 得出代码如下
可是,查看test.bak发现文本的空行也被删除了。如果要保留空行,该如何改代码? |
|
| 第2楼 suntb | 发表于 2007-05-16 08:58 |
| 高级用户 发帖 277 积分 581 | |
|
新手摸索中,请勿笑话
期待有兄弟帮忙解答 |
|
| 第3楼 bjsh | 发表于 2007-05-16 09:20 |
| 银牌会员 发帖 621 积分 2,000 | |
|
出现这种情况是因为for 的 /F 参数 会跳过空白行;
不如直接 findstr /r /i /v "^sw.bmp" test.txt >>test.bak |
|
| 第4楼 ttyp | 发表于 2007-05-16 09:23 |
| 初级用户 发帖 84 积分 180 | |
|
@echo off
cd.>b.txt for /f %%i in ('findstr /i /v /n "^sw\.bmp.*" a.txt') do ( for /f "tokens=1,2* delims=:" %%a in ("%%i") do ( if "%%b"=="" (echo.>>b.txt) else echo %%b>>b.txt ) ) |
|
| 第5楼 suntb | 发表于 2007-05-16 09:42 |
| 高级用户 发帖 277 积分 581 | |
|
bjsh版主的代码比用for代码速度快多了,结果符合要求
学习中 谢谢 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |