中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 23:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于自己删除自己的问题,高手进来呀,谢啦 查看 2,373 回复 17
楼 主 关于自己删除自己的问题,高手进来呀,谢啦 发表于 2007-07-08 15:20 ·  中国 北京 联通
初级用户
积分 78
发帖 34
注册 2006-12-09 05:10
19年会员
UID 73001
性别 男
状态 离线
现有一个批处理文件。里边就是几个删除的语句。我把他由bat转成了exe~~~

现在有一个困惑:

我这个文件是c:\123目录下的。
可是该文档并不能删除自己本身这个目录
rd /s /q C:\123


我试过:
del %0

不管用的。。。。

现急求删除自身目录的方法。谢谢~~~~~~~~~~~
2 发表于 2007-07-08 16:17 ·  中国 北京 联通
初级用户
积分 78
发帖 34
注册 2006-12-09 05:10
19年会员
UID 73001
性别 男
状态 离线
5555555555.没有人告诉我/////只要能删除这个自身目录,其它任何方法也行...

再次请大家指点下~~
3 发表于 2007-07-08 17:11 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
你的文件正在运行中,当然无法删除。可以考虑调用另一批处理删除。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
4 发表于 2007-07-08 23:54 ·  中国 北京 鹏博士BGP
初级用户
积分 126
发帖 47
注册 2007-07-02 17:00
19年会员
UID 92952
性别 男
状态 离线
Originally posted by zhanghong1 at 2007-7-8 04:17 PM:
5555555555.没有人告诉我/////只要能删除这个自身目录,其它任何方法也行...

再次请大家指点下~~


按照你说的
我试了一下,能删除掉自身目录,可是删除调用的批处理时总是报错(虽然报错,但是能够删除掉),有什么办法让他不报错吗?


@echo off
cho ^@echo off >d:\1.bat
echo d: >>d:\1.bat
echo ping -n 1 127.0.0.1 >>d:\1.bat
echo rd /s /q c:\123>>d:\1.bat
echo del /s /q d:\1.bat >>d:\1.bat
start d:\1.bat & exit



我试了下,能删,就是始终报错,不知道什么原因
新学的,别笑。。。
5 发表于 2007-07-09 00:22 ·  中国 广东 汕头 潮阳区 电信
高级用户
★★★
DOS时空
积分 713
发帖 348
注册 2007-02-10 13:59
19年会员
UID 79169
性别 男
状态 离线
echo rd/s/q c:\123 >c:\haiou.bat
cd\
haiou.bat


用这句试试,我在CMD测试成功
6 发表于 2007-07-09 20:11 ·  中国 北京 鹏博士BGP
初级用户
积分 126
发帖 47
注册 2007-07-02 17:00
19年会员
UID 92952
性别 男
状态 离线
Originally posted by haiou327 at 2007-7-9 12:22 AM:
echo rd/s/q c:\123 >c:\haiou.bat
cd\
haiou.bat


用这句试试,我在CMD测试成功



你这样删除123倒是没问题了。可你又产生了一个新的垃圾文件haiou.bat
7 发表于 2007-07-09 22:16 ·  中国 广东 汕头 潮阳区 电信
高级用户
★★★
DOS时空
积分 713
发帖 348
注册 2007-02-10 13:59
19年会员
UID 79169
性别 男
状态 离线
echo rd/s/q c:\123 ^>nul >>c:\haiou.bat
echo del c:\8.bat^>nul 2^>nul >>c:\haiou.bat
cd\
haiou.bat
我试过在haiou.bat最后加上一句自杀命令,用CMD来调用haiou,文件可以正常删除,但会提示找不到批处理文件的信息,现在也是没法来屏蔽信息,故在后面加上了>nul 2>nul 也没有屏蔽掉.

[ Last edited by haiou327 on 2007-7-10 at 11:20 PM ]
8 发表于 2007-07-09 22:18 ·  中国 广东 汕头 潮阳区 电信
高级用户
★★★
DOS时空
积分 713
发帖 348
注册 2007-02-10 13:59
19年会员
UID 79169
性别 男
状态 离线
按照你说的
我试了一下,能删除掉自身目录,可是删除调用的批处理时总是报错(虽然报错,但是能够删除掉),有什么办法让他不报错吗?


@echo off
cho ^@echo off >d:\1.bat
echo d: >>d:\1.bat
echo ping -n 1 127.0.0.1 >>d:\1.bat
echo rd /s /q c:\123>>d:\1.bat
echo del /s /q d:\1.bat >>d:\1.bat
start d:\1.bat & exit

echo ping -n 1 127.0.0.1这句用在这好象是没什么意义.Sample Text

[ Last edited by haiou327 on 2007-7-9 at 10:20 PM ]
9 发表于 2007-07-10 13:54 ·  中国 北京 鹏博士BGP
初级用户
积分 126
发帖 47
注册 2007-07-02 17:00
19年会员
UID 92952
性别 男
状态 离线
Originally posted by haiou327 at 2007-7-9 10:18 PM:
按照你说的
我试了一下,能删除掉自身目录,可是删除调用的批处理时总是报错(虽然报错,但是能够删除掉),有什么办法让他不报错吗?


@ec ...


这句是没什么意思。
这是我在删的过程中发现有的时候因为延时的原因删不掉123目录
所以让它等一秒
10 发表于 2007-07-10 14:18 ·  中国 四川 绵阳 江油市 电信
高级用户
★★★
积分 502
发帖 327
注册 2006-12-30 06:01
19年会员
UID 74981
性别 男
状态 离线
del /?

del /s /q 带参数试试
11 发表于 2007-07-11 01:46 ·  中国 广东 汕头 潮阳区 电信
高级用户
★★★
DOS时空
积分 713
发帖 348
注册 2007-02-10 13:59
19年会员
UID 79169
性别 男
状态 离线
@echo off
echo rd/s/q c:\123 >c:\haiou.bat
echo del/f/q %%0 ^>nul 2^>nul >>c:\haiou.bat
cd\
haiou.bat

建立楼主不要用START来启动生成的那个批处理,这样又会多个CMD窗口来.
直接批处理不是更好.不过还是无法屏蔽报错信息.

[ Last edited by haiou327 on 2007-7-11 at 01:49 AM ]
12 发表于 2007-07-11 18:25 ·  中国 北京 联通
初级用户
积分 78
发帖 34
注册 2006-12-09 05:10
19年会员
UID 73001
性别 男
状态 离线
Originally posted by haiou327 at 2007-7-11 01:46 AM:
@echo off
echo rd/s/q c:\123 >c:\haiou.bat
echo del/f/q %%0 ^>nul 2^>nul >>c:\haiou.bat
cd\
haiou.bat

建立楼主不要用START来启动生成的那个批处理,这样又会多 ...



我目前是调另一个批处理来删除,在那个批处理加自杀..

报错的问题,让我头疼~~~~~~~~~~~~~~~~~~~~~~~
13 发表于 2007-07-12 12:40 ·  中国 河南 郑州 联通
初级用户
积分 46
发帖 22
注册 2006-08-06 13:27
20年会员
UID 59949
性别 男
来自 郑州
状态 离线
md c:\123
echo ^@echo off >d:\1.bat
echo d: >>d:\1.bat
echo rd /s /q c:\123>>d:\1.bat
echo del %%0 1^>^>nul 2^>^>nul >>d:\1.bat
pause
call d:\1.bat
这样不是更好?
14 发表于 2007-07-12 12:43 ·  中国 河南 郑州 联通
初级用户
积分 46
发帖 22
注册 2006-08-06 13:27
20年会员
UID 59949
性别 男
来自 郑州
状态 离线
echo ^@echo off >d:\1.bat
echo d: >>d:\1.bat
echo rd /s /q c:\123>>d:\1.bat
echo del %%0 >>d:\1.bat
call d:\1.bat
15 发表于 2007-07-12 23:16 ·  中国 广东 汕头 潮阳区 电信
高级用户
★★★
DOS时空
积分 713
发帖 348
注册 2007-02-10 13:59
19年会员
UID 79169
性别 男
状态 离线
Originally posted by tbs198400 at 2007-7-12 12:43 PM:
echo ^@echo off >d:\1.bat
echo d: >>d:\1.bat
echo rd /s /q c:\123>>d:\1.bat
echo del %%0 >>d:\1.bat
call d:\1.bat


和我的那个代码用什么区别.一模一样.只是你把生成的P放在D盘,而我是放C盘.

[ Last edited by haiou327 on 2007-7-12 at 11:19 PM ]
论坛跳转: