中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 13:03
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]在批处理中删除本身批处理文件?
可打印版本  2,326 / 5
第1楼 hyzys 发表于 2004-11-25 00:00
初级用户 发帖 17 积分 189
[求助]在批处理中删除本身批处理文件?
记得有一个命令可以删除批处理本身的,一下子忘了,就是比如:
在A.BAT中用一个什么命令使得可以删除A.BAT本身?
第2楼 Climbing 发表于 2004-11-26 00:00
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
@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楼 autoit 发表于 2004-11-26 00:00
系统支持 发帖 339 积分 904 来自 厦门
以下是引用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
初级用户 发帖 28 积分 165
如果批处理不叫A.bat怎么办?我的批处理是针对任何文件名的(当然扩展名必须是BAT)。楼主出的问题是让批处理删除自身,并没有限定这个批处理一定要叫A.BAT,所以要从批处理内部判断自己叫什么。
第5楼 linson 发表于 2004-12-01 00:00
中级用户 发帖 31 积分 283
del /q %0就可以删除本身.
第6楼 willsort 发表于 2004-12-04 00:00
元老会员 发帖 1,512 积分 4,432
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

[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023