标题: 求win98下支持超长参数的Del命令行工具
[打印本页]
作者: dejoy
时间: 2008-11-17 23:06
标题: 求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 ]
作者: DOSforever
时间: 2008-11-17 23:10
4DOS
作者: dejoy
时间: 2008-11-17 23:24
呵呵 可是我只要一个del命令工具,至多不超过100k吧,4dos有多大啊,至少大几倍吧,何况我要的这个del命令行工具只需要运行一次,运行一次后就删除del本身了,最好是一个单独的文件,并且大小在100k以下
[
Last edited by dejoy on 2008-11-18 at 00:02 ]
作者: DOSforever
时间: 2008-11-17 23:28
Windows98 下不支持双引号吗?
作者: dejoy
时间: 2008-11-18 00:00
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 ]
作者: DOSforever
时间: 2008-11-18 00:13
Quote: |
win98平台下使用
win98下支不支持双引号我不知道
因为win98的del不支持…… |
|
你这种态度好象不是来问问题的。
要么啰嗦了一堆话但一个问题不知道他究竟想要问什么。
http://www.cn-dos.net/forum/viewthread.php?tid=43164
顺便说一句,我现在就是在 Win98 下回帖的。
作者: dejoy
时间: 2008-11-18 00:40
感谢你的关注,如果在语气上有所冲撞,我说声对不起啦
我简要的归纳一下:
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 ]
作者: DOSforever
时间: 2008-11-18 00:58
非常抱歉,据我所知只有 4DOS 满足你的这些要求,既然你是在 Win98 下使用何必在乎它的体积呢?还有,Win98 (的内部命令)本身就支持用双引号括起来的长文件名,4DOS 让你一个命令支持多个操作对象主要是为了在命令行状态下输入方便,你有这么多文件要处理何不做个批处理呢?
作者: dejoy
时间: 2008-11-18 01:12
首先谢谢 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 ]
作者: DOSforever
时间: 2008-11-18 02:04
关于如何在编译工程中实现我就不清楚了,看看其他人有什么想法没有。
作者: dejoy
时间: 2008-11-18 11:38
今天有win98平台环境,测试了一下,win98下的内置del支持包含引号的文件名,但不支持超长命令行参数.
在寻求第三方del无果的情况下,只有自己写了个实现此功能的简单小del.功能很简单,就只是删除文件,但支持超长文件名参数
附件
1:
del.rar (2008-11-18 11:38, 21.92 K,下载次数: 7)