标题: [求助]在批处理中删除本身批处理文件?
[打印本页]
作者: hyzys
时间: 2004-11-25 00:00
标题: [求助]在批处理中删除本身批处理文件?
记得有一个命令可以删除批处理本身的,一下子忘了,就是比如:
在A.BAT中用一个什么命令使得可以删除A.BAT本身?
作者: Climbing
时间: 2004-11-26 00:00
@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
作者: autoit
时间: 2004-11-26 00:00
以下是引用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 就可以的吧?
作者: 小石头
时间: 2004-11-27 00:00
如果批处理不叫A.bat怎么办?我的批处理是针对任何文件名的(当然扩展名必须是BAT)。楼主出的问题是让批处理删除自身,并没有限定这个批处理一定要叫A.BAT,所以要从批处理内部判断自己叫什么。
作者: linson
时间: 2004-12-1 00:00
del /q %0就可以删除本身.
作者: willsort
时间: 2004-12-4 00:00
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