【方法1,适用于非编译版本】:
;~ 本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/liuyukuan/article/details/5960588
; 将下面这行加在脚本自动执行部分的“Return”之前
OnExit, DelMyself
; 将下面的部分放在自动执行部分之后(或最后)
DelMyself:
; Gui, Destroy ; 如果没有GUI,可去掉这行
MsgBox, 4, , 要删除脚本吗?
IfMsgBox, Yes
{
FileDelete, %A_ScriptFullPath%
ExitApp
}
ExitApp
【方法2,适用于非编译版本,支持长文件名】:
loop,%A_ScriptFullPath%
_path=%A_LoopFileShortPath% ;把长文件名转成短文件名
Run,%ComSpec% /c ping 127.0.0.1 -n 3 && del /q %_path%,,Hide
方法3【适用于编译后的exe版本,不要欺负程序员】:
;~ 本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/liuyukuan/article/details/5960588
if (A_IsCompiled) ;编译版本才执行
{
bat=
(LTrim
:start
ping 127.0.0.1 -n 2>nul
del `%1
if exist `%1 goto start
del `%0
)
batfilename=delete.bat
IfExist %batfilename%
FileDelete %batfilename%
FileAppend, %bat%, %batfilename%
Run, %batfilename% "%A_ScriptFullPath%", , Hide
ExitApp
}