中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS软件下载 & 游戏分享 (下载室) » 求win98下支持超长参数的Del命令行工具
作者:
标题: 求win98下支持超长参数的Del命令行工具 上一主题 | 下一主题
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
状态 离线
『第 2 楼』:  

4DOS



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
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
状态 离线
『第 4 楼』:  

Windows98 下不支持双引号吗?



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
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
状态 离线
『第 6 楼』:  



  Quote:
win98平台下使用
win98下支不支持双引号我不知道
因为win98的del不支持……

你这种态度好象不是来问问题的。

  Quote:
带双引号
一条命令同时删除多个文件

要么啰嗦了一堆话但一个问题不知道他究竟想要问什么。
http://www.cn-dos.net/forum/viewthread.php?tid=43164

顺便说一句,我现在就是在 Win98 下回帖的。



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
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
状态 离线
『第 8 楼』:  

非常抱歉,据我所知只有 4DOS 满足你的这些要求,既然你是在 Win98 下使用何必在乎它的体积呢?还有,Win98 (的内部命令)本身就支持用双引号括起来的长文件名,4DOS 让你一个命令支持多个操作对象主要是为了在命令行状态下输入方便,你有这么多文件要处理何不做个批处理呢?



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
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
状态 离线
『第 10 楼』:  

关于如何在编译工程中实现我就不清楚了,看看其他人有什么想法没有。



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
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
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: