![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 14:55 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 请教:如何在批处理中删除指定文本文件中的空白行? |
| 可打印版本 3,601 / 4 |
| 第1楼 Tamm | 发表于 2004-04-18 00:00 |
| 中级用户 发帖 64 积分 397 | |
|
请教:如何在批处理中删除指定文本文件中的空白行? 各位好!首先谢谢你关注我的问题。
具体情况是这样的: 在下在编写一个批处理中想要使用 wbat list 命令提供一个选择分区的界面,下面是批处理中相关的命令(与问题无关的语句已隐去): (%HD% 表示第几个硬盘,已提前赋值) gdisk %HD% >%temp%\temp.txt ECHO :sign >%temp%\temp1.txt find /i "primary" %temp%\temp.txt >> %temp%\temp1.txt find /i "logical" %temp%\temp.txt >> %temp%\temp1.txt find /i /v "TXT" %temp%\temp1.txt >%temp%\%HD%DiskPar.txt ::del %temp%\temp*.txt call w.bat list @%temp%\%HD%DiskPar.txt :sign :THE END 执行后 temp.txt 文件内容如下: Disk Partitions Cylinders Heads Sectors Mbytes Model 1 10 9729 255 63 76319.1 Unavailable Partition Status Type Volume Label Mbytes System Usage C: 1 A PRIMARY 98 2000.2 FAT32 3% 2 EXTENDED 74316.3 97% 3 LOGICAL 4000.5 NTFS/HPFS 5% 4 LOGICAL 15029.5 NTFS/HPFS 20% 5 LOGICAL 10001.4 NTFS/HPFS 13% 6 LOGICAL 4000.5 NTFS/HPFS 5% 7 LOGICAL 4000.5 NTFS/HPFS 5% D: 8 LOGICAL BACKUP 12276.2 FAT32 16% E: 9 LOGICAL TEMP 5004.6 FAT32 7% 10 LOGICAL 20002.8 NTFS/HPFS 26% temp1.txt 内容如下: :sign ---------- C:\WINDOWS\TEMP\temp.txt C: 1 A PRIMARY 98 2000.2 FAT32 3% ---------- C:\WINDOWS\TEMP\temp.txt 3 LOGICAL 4000.5 NTFS/HPFS 5% 4 LOGICAL 15029.5 NTFS/HPFS 20% 5 LOGICAL 10001.4 NTFS/HPFS 13% 6 LOGICAL 4000.5 NTFS/HPFS 5% 7 LOGICAL 4000.5 NTFS/HPFS 5% D: 8 LOGICAL BACKUP 12276.2 FAT32 16% E: 9 LOGICAL TEMP 5004.6 FAT32 7% 10 LOGICAL 20002.8 NTFS/HPFS 26% %HD%DiskPar.txt 内容如下: ---------- C:\WINDOWS\TEMP\temp1.txt :sign C: 1 A PRIMARY 98 2000.2 FAT32 3% 3 LOGICAL 4000.5 NTFS/HPFS 5% 4 LOGICAL 15029.5 NTFS/HPFS 20% 5 LOGICAL 10001.4 NTFS/HPFS 13% 6 LOGICAL 4000.5 NTFS/HPFS 5% 7 LOGICAL 4000.5 NTFS/HPFS 5% D: 8 LOGICAL BACKUP 12276.2 FAT32 16% E: 9 LOGICAL TEMP 5004.6 FAT32 7% 10 LOGICAL 20002.8 NTFS/HPFS 26% 这时候 call w.bat list 显示出来的 list 会有两个空行,虽然也有办法可以在处理 %wbat% 返回值的时候正确识别出空行并不做处理,或者返回 list 命令重新显示列表(感觉就是点空行没有什么反应),但总归感觉不理想。 这里请教各位高手:如何在批处理中删除指定文本文件中的空白行? 另: 这里列出的结果使用的是 Win98 里的 Find.exe (大小 6.50KB)命令,如果使用 Wengier 的超级启动盘中提供的那个 Find.com (大小 2.89KB) 则不会有这两个空行。但那个 Find.com 不知道为什么,在 windows 98 的 DOS 窗口执行的时候大多数情况都正常,偶尔会出现错误(几率比较小),而在纯粹的 DOS 环境下,运行就从没有成功过,出错的现象是:最终的 %HD%DiskPar.txt 文件中只有如下一行: Invalid drive specification 别的什么也没有了。请高手指教这个错误提示是为什么? 而如果用 win98里的 Find.exe 。则各种环境都从不出错 (但总是有两个空行) |
|
| 第2楼 Climbing | 发表于 2004-04-18 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
用Horst的Listmod或者lmod均可以去掉空行。
type %HD%DiskPar.txt | listmod $* 或 type %HD%DiskPar.txt | lmod /L3* 后一条命令连temp1.txt那一行都可以去掉。 |
|
| 第3楼 Tamm | 发表于 2004-04-19 00:00 |
| 中级用户 发帖 64 积分 397 | |
以下是引用Climbing在2004-4-18 21:13:00的发言: 非常谢谢 Climbing 先生的指点。 因为我最近才学习使用 DOS 命令,水平非常的菜,对 DOS 工具的了解少得可怜(努力学习中...).从没用过 "Horst的Listmod或者lmod..." 实在不好意思。我在论坛翻了好久,也没找到相关的信息,论坛里很多链接好像都已经失效(不知道是不是我的网络问题,但我总是打不开) 所以还想继续麻烦指点一下: 从哪里可以弄到这个 Horst 工具? 我是否有可能从这个工具本身自带的提示(或帮助)信息中学会使用它? (我的E文水平也很差,但我不是很懒,最近我花了十天左右的时间通过 WBAT 里自带的 DEMO 已经基本掌握了它的使用方法,主要时间都花在了翻译那些 E 文上了 ^_^ ) |
|
| 第4楼 Climbing | 发表于 2004-04-19 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
WBAT就是Horst(全名是Horst Schaeffer)的产品,如果你知道从哪里下载WBAT,那么在同样的地方你就可以下载到listmod 或者 lmod。
同样的用google搜索:Horst listmod关键字,也可以搜索到很多下载点。 最后,我提供一下Horst的主页: http://home.mnet-online.de/horst.muc/ |
|
| 第5楼 Tamm | 发表于 2004-04-19 00:00 |
| 中级用户 发帖 64 积分 397 | |
|
太谢谢了!这些正是我想要的东西。
啃ing... BTW:我的 WBAT 是从另外的第三方站点下载的,因为刚弄到手不久,一直在研究它的 DEMO 。至今仍未访问过它的"老家" |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |