|
dejoy
初级用户
积分 76
发帖 64
注册 2008-4-24
状态 离线
|
『楼 主』:
求win98下支持超长参数的Del命令行工具
求支持del "c:\a b"\a.txt c:\b.txt ... ,(此处省略N个文件名,N>=1<=100,总长度可能超过256个字符),这样带双引号并超长的Del命令行工具,win98平台下使用
win2000以上的del命令直接就支持这样的语法了,因为要在win98平台下使用,win98下命令行好像不支持超长参数,而在已知的一些三方del工具,tdel,delen,pdel又都不支持这种带引号的语法,求一款支持此语法的小工具.
[ Last edited by dejoy on 2008-11-18 at 01:20 ]
|
|
2008-11-17 23:06 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-17 23:10 |
|
|
dejoy
初级用户
积分 76
发帖 64
注册 2008-4-24
状态 离线
|
『第
3 楼』:
呵呵 可是我只要一个del命令工具,至多不超过100k吧,4dos有多大啊,至少大几倍吧,何况我要的这个del命令行工具只需要运行一次,运行一次后就删除del本身了,最好是一个单独的文件,并且大小在100k以下
[ Last edited by dejoy on 2008-11-18 at 00:02 ]
|
|
2008-11-17 23:24 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-17 23:28 |
|
|
dejoy
初级用户
积分 76
发帖 64
注册 2008-4-24
状态 离线
|
『第
5 楼』:
win98下是否支持双引号因我没试过,现在也无win98环境,所以不太清楚.我需要使用del "c:"\a.txt "D:"\b.txt "E:"\c.txt这样的,一条命令同时删除多个文件,因为win98的del不支持同时删除多个文件(我的同时删除文件最多有近百个,而且因限制无法分拆,只能用一条del同时删除,而且命令长度好像也有限制),所以我就没有也无必要进一步去验证是否支持双引号了
tdel,delen,pdel等第三方del虽然支持同时删除很多文件了,但却不支持"
[ Last edited by dejoy on 2008-11-18 at 00:46 ]
|
|
2008-11-18 00:00 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-18 00:13 |
|
|
dejoy
初级用户
积分 76
发帖 64
注册 2008-4-24
状态 离线
|
『第
7 楼』:
感谢你的关注,如果在语气上有所冲撞,我说声对不起啦
我简要的归纳一下:
1.平台是win9x;
2.要执行的命令是一条,del "c:"\a.txt "D:"\b.txt "E:"\c.txt...,后面省略N个"E:"\c.txt,N>=1<=100,整条命令总长度超过可能256个字符.提示:A.文件名中包含",因"中可能包含空格,B.同时删除多个文件,C.命令可能超长.
3.这个是一次性执行的命令,所以要求del.exe不要有什么关联性,最好只是一个文件,并且大小不要太大.
不知我表述清楚了没?
对此再加以注释:
1.带双引号
del c:\a.txt >>文件名不带双引号
del "c:"\a.txt 或del "c:\a.txt" >>文件名带双引号
2.一条命令同时删除多个文件
del c:\a.txt >>一条命令只删除一个文件
del c:\a.txt c:\b.txt c:\c.txt>>一条命令同时删除多个文件
综合1及2就是:
del c:\a.txt "c:"\b.txt "c:\c.txt">>一条命令同时删除多个文件并且文件名中含又引号
[ Last edited by dejoy on 2008-11-18 at 00:46 ]
|
|
2008-11-18 00:40 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-18 00:58 |
|
|
dejoy
初级用户
积分 76
发帖 64
注册 2008-4-24
状态 离线
|
『第
9 楼』:
首先谢谢 dosforever的热心回复,win98支持双引号的括起来的文件名,我在win98平台下试试去.
准确的说,我是在编译工程的Make文件中调用,make文件中如下:
clean:
del $(DCUFILES)
DCUFILES又如下:
DCUFILES = \
$(LIB)\system.dcu \
$(LIB)\SysConst.dcu \
$(LIB)\sharemem.dcu \
$(LIB)\types.dcu \
$(LIB)\comobj.dcu \
$(LIB)\comserv.dcu \
$(LIB)\windows.dcu \
$(LIB)\sysutils.dcu \
..............
这儿就条件限制了,$(DCUFILES)是已定义的包含所有文件名的一个字符串,可能是像"c:"\a.txt "D:"\b.txt "E:"\c.txt这样,而且可能超长256个字符.而且只能使用del $(DCUFILES)这样一次性删除所有文件.
您的使用批处理来做的建议不错,也许可以写一个Del.bat,把$(DCUFILES)作为参数传入,在Del.bat中把传入的"c:"\a.txt "D:"\b.txt "E:"\c.txt拆分成单条的del分别执行:
del "c:"\a.txt
del "D:"\b.txt
del "E:"\c.txt
不过这样似乎又带来两个问题:
1.如果win98平台本身就限制dos命令的长度,比如256个字符,那么如果包含所有文件名的字符串$(DCUFILES)本身就超长,那传入del.bat的参数也会被截断.
2.如果使用win98内置的del+BAT来做,可能算法上会非常的复杂,或不如直接使用现成的三方del命令行工具来得有效率?
4DOS是整个平台,很强大,不过我只需要其中的del,如果把4dos中的del单独复制出来,也无法运行吧?
[ Last edited by dejoy on 2008-11-18 at 01:13 ]
|
|
2008-11-18 01:12 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-18 02:04 |
|
|
dejoy
初级用户
积分 76
发帖 64
注册 2008-4-24
状态 离线
|
『第
11 楼』:
今天有win98平台环境,测试了一下,win98下的内置del支持包含引号的文件名,但不支持超长命令行参数.
在寻求第三方del无果的情况下,只有自己写了个实现此功能的简单小del.功能很简单,就只是删除文件,但支持超长文件名参数
附件
1: del.rar (2008-11-18 11:38, 21.92 K,下载次数: 7)
|
|
2008-11-18 11:38 |
|
|