楼 主
[求助]在批处理中删除本身批处理文件?
发表于 2004-11-25 00:00 · 中国 广东 河源 电信
初级用户
★
积分 189
发帖 17
注册 2004-09-23 00:00
21年会员
UID 31697
性别 男
状态 离线
记得有一个命令可以删除批处理本身的,一下子忘了,就是比如:
在A.BAT中用一个什么命令使得可以删除A.BAT本身?
第 2 楼
发表于 2004-11-26 00:00 · 中国 河北 石家庄 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
@echo off
echo Before delete:
dir %0.*
echo Going for delete myself...
echo %0 | find /i ".bat"
if errorlevel 1 goto _addext
copy %0 %0.bak > nul
del %0
goto _quit:_addext
copy /y %0.bat %0.bat.bak > nul
del %0.bat:_quit
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子”和“
这个帖子”并努力遵守,如果可能,请告诉更多的人!
第 3 楼
发表于 2004-11-26 00:00 · 中国 福建 厦门 电信
系统支持
★★★
积分 904
发帖 339
注册 2002-10-10 00:00
23年会员
UID 1904
来自 厦门
状态 离线
以下是引用Climbing在2004-11-26 13:21:37的发言:
@echo off
echo Before delete:
dir %0.*
echo Going for delete myself...
echo %0 | find /i ".bat"
if errorlevel 1 goto _addext
copy %0 %0.bak > nul
del %0
goto _quit
:_addext
copy /y %0.bat %0.bat.bak > nul
del %0.bat
:_quit
del /q a.bat 就可以的吧?
第 4 楼
发表于 2004-11-27 00:00 · 中国 河北 保定 联通
初级用户
★
积分 165
发帖 28
注册 2004-08-09 00:00
21年会员
UID 29892
性别 男
状态 离线
如果批处理不叫A.bat怎么办?我的批处理是针对任何文件名的(当然扩展名必须是BAT)。楼主出的问题是让批处理删除自身,并没有限定这个批处理一定要叫A.BAT,所以要从批处理内部判断自己叫什么。
第 5 楼
发表于 2004-12-01 00:00 · 中国 福建 厦门 电信
中级用户
★
积分 283
发帖 31
注册 2004-03-06 00:00
22年会员
UID 19334
性别 男
状态 离线
第 6 楼
发表于 2004-12-04 00:00 · 中国 山西 运城 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re Climbing:
将你的程序略作修改。另外,仍然有无法找到批处理文件的提示,生成临时的删除程序也会留下尾巴,所以还是需要利用系统的卸载机制,不过程序就复杂化了。
Re linson:
del /q %0 语句,当在命令行使用主程序名调用批处理程序时,无法删除自身。
@echo off
echo Before delete:
dir %0.*
echo Going for delete myself...
::echo %0 | find /i ".bat"
::if errorlevel 1 goto _addext
if exist %0.bat goto _addext
if not exist %0 goto _quit
copy %0 %0.bak > nul
del %0
goto _quit
:_addext
copy /y %0.bat %0.bat.bak > nul
del %0.bat
:_quit
※ Batchinger 致 Bat Fans:请访问
批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: