Board logo

标题: 请教:如何在批处理中删除指定文本文件中的空白行? [打印本页]

作者: Tamm     时间: 2004-4-18 00:00    标题: 请教:如何在批处理中删除指定文本文件中的空白行?

各位好!首先谢谢你关注我的问题。
具体情况是这样的:
在下在编写一个批处理中想要使用 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 。则各种环境都从不出错 (但总是有两个空行)














[此贴子已经被作者于2004-4-18 18:16:47编辑过]



作者: Climbing     时间: 2004-4-18 00:00
用Horst的Listmod或者lmod均可以去掉空行。

type %HD%DiskPar.txt | listmod $*

type %HD%DiskPar.txt | lmod /L3*

后一条命令连temp1.txt那一行都可以去掉。
作者: Tamm     时间: 2004-4-19 00:00


  Quote:
以下是引用Climbing在2004-4-18 21:13:00的发言:
用Horst的Listmod或者lmod均可以去掉空行。

type %HD%DiskPar.txt | listmod $*

type %HD%DiskPar.txt | lmod /L3* 

后一条命令连temp1.txt那一行都可以去掉。

非常谢谢 Climbing 先生的指点。
因为我最近才学习使用 DOS 命令,水平非常的菜,对 DOS 工具的了解少得可怜(努力学习中...).从没用过 "Horst的Listmod或者lmod..." 实在不好意思。我在论坛翻了好久,也没找到相关的信息,论坛里很多链接好像都已经失效(不知道是不是我的网络问题,但我总是打不开)
所以还想继续麻烦指点一下:
从哪里可以弄到这个 Horst 工具?
我是否有可能从这个工具本身自带的提示(或帮助)信息中学会使用它?

(我的E文水平也很差,但我不是很懒,最近我花了十天左右的时间通过 WBAT 里自带的 DEMO 已经基本掌握了它的使用方法,主要时间都花在了翻译那些 E 文上了 ^_^ )
作者: Climbing     时间: 2004-4-19 00:00
WBAT就是Horst(全名是Horst Schaeffer)的产品,如果你知道从哪里下载WBAT,那么在同样的地方你就可以下载到listmod 或者 lmod。

同样的用google搜索:Horst listmod关键字,也可以搜索到很多下载点。

最后,我提供一下Horst的主页:
http://home.mnet-online.de/horst.muc/
作者: Tamm     时间: 2004-4-19 00:00
太谢谢了!这些正是我想要的东西。
啃ing...

BTW:我的 WBAT 是从另外的第三方站点下载的,因为刚弄到手不久,一直在研究它的 DEMO 。至今仍未访问过它的"老家"