![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 19:16 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教: 如何用批处理删除文本文件中以指定字符开始的行? |
| 可打印版本 1,784 / 9 |
| 第1楼 lianjiang2004 | 发表于 2006-12-18 04:45 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
请教: 如何用批处理删除文本文件中以指定字符开始的行? 请教: 如何用批处理删除文本文件中以指定字符开始的行?
比如想删除1.txt中以aaa空格“aaa ”为开始的行。谢谢? |
|
| 第2楼 vkill | 发表于 2006-12-18 05:11 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
copy 1.txt 2.txt
sed "/^aaa /d" 2.txt|more>1.txt del 2.txt |
|
| 第3楼 yardian | 发表于 2006-12-18 05:15 |
| 中级用户 发帖 85 积分 305 | |
| 第4楼 namejm | 发表于 2006-12-18 05:26 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
若要考虑特殊字符,可以使用下面的演示代码(但是就无法避免在每行的首位都要加引号):
若无须考虑连接符号,则可以使用如下演示代码: 以上代码不直接用 delims=: 是为了防止行首的冒号被抛弃;用 findstr /n .* 的格式是为了不忽略以分号开头的行;给 %%i 加引号是为了对付空格,在 %%i 后加星号,是为了对付空行;第二段代码用 echo 后加了一个点号,也是为了对付空行。总之,用 for 语句处理文本要注意的事项比较多,可视具体文本增删语句的某些部分。 |
|
| 第5楼 lianjiang2004 | 发表于 2006-12-18 06:27 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
这段时间在这里得到了各位的大力帮助,谢谢各位了。
这几种代码都试了,好像都不行。 我要把aaa 开头的行,整行删除掉。 [ Last edited by lianjiang2004 on 2006-12-18 at 07:06 AM ] |
|
| 第6楼 ccwan | 发表于 2006-12-18 21:01 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
这可奇了。我试过vkill和namejm兄的代码后没有问题啊。确如楼主要求,去掉了aaa开头的行。
不如楼主将你测试用的文本内容贴上来,大家一起看看。 |
|
| 第7楼 9527 | 发表于 2006-12-18 23:13 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
试试下面一句是否管用???
findstr /b /v /c:"aaa " test.txt |
|
| 第8楼 lianjiang2004 | 发表于 2006-12-19 00:57 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
比如我想把下面文件中以rem 开头的行删除。
--------------- @Echo Off Rem 第一次完成这段代码,不足和错误在所难免。 mode con: cols=76 lines=26 Set TT=WangZQ的 gghost 绿色备份恢复工具 卸载程序 COLOR 2F TITLE %TT% :uninstall0 echo. echo 谢谢使用 gghost 绿色备份恢复工具 v2.0 echo ============================= echo. echo 1. 卸载gghost后,自动恢复安装gghost到启动项 echo 所进行的文件修改,复原至原样。 echo. Echo 2. 若设置了管理员密码,自动卸载需输入管理员密码。 echo. pause if %pwda%==0 goto uninstall cls Echo. Echo. Set /P unins_0=请先输入管理员密码: If %unins_0%==%pwda% Goto uninstall cls Echo. Echo Sorry! 管理员密码错误,不可自动卸载,按任意键结束 。。。 pause>nul Goto Exit :uninstall cls echo. echo 正在卸载。。。 Rem 彻底清除本工具及自动生成的备用文件。 if exist c:\w_boot.ini goto sub_34a >nul :sub_18d [ Last edited by lianjiang2004 on 2006-12-19 at 07:21 AM ] |
|
| 第9楼 namejm | 发表于 2006-12-19 01:42 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
呵呵,还是 9527 兄的代码简洁,我绕了个大圈子了。
借用 9527 兄的代码,可以写成这样: 注意要加上参数 /i 来忽略大小写。 [ Last edited by namejm on 2006-12-18 at 12:46 PM ] |
|
| 第10楼 lianjiang2004 | 发表于 2006-12-19 02:13 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
可以了,谢谢各位。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |