找回密码
 加入
搜索
查看: 24586|回复: 42

[原创] au3自删除的归纳

 火... [复制链接]
发表于 2011-11-9 20:10:33 | 显示全部楼层 |阅读模式
本帖最后由 虫子樱桃 于 2012-2-9 16:27 编辑

相信很多弟兄都是做系统的,要写写au3脚本来进行任务调度,那么在任务调度以后,必然是需要对脚本进行自删除。现在简单作下归结。
常规的做法:
Run(@ComSpec&' /c ping 127.0.0.1 -n 3&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE)

其实也可以写下面的方法:
在exit函数后面加个括号,里面写要执行的函数,哈哈。
Exit(FileDelete(@ScriptFullPath))

exit方式貌似在新版的au3中,编译以后存在一定问题。
在论坛上看见的一个办法:
    exit (run(@ComSpec & ' /c del/f/q "' & @ScriptFullPath & '"||del/f/q "' & @ScriptFullPath & '"||del/f/q "' & @ScriptFullPath & '"', @ScriptDir, @SW_HIDE)) 



其实在au3中全局缩写文件里面已经集成了这样的一个函数
函数原型如下
Func _SelfDelete($iDelay = 0)
        ;ping的超时时间
        Local $sCmdFile
        FileDelete(@TempDir & "scratch.bat")
        $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
                        & ':loop' & @CRLF _
                        & 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
                        & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
                        & 'del ' & @TempDir & 'scratch.bat'
        FileWrite(@TempDir & "scratch.bat", $sCmdFile)
        Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
EndFunc
在那个编辑器里面输入selfdelete按ctrl+b就出来啦
咋调用?地球人都知道啊 ---
发表于 2011-11-9 20:23:09 | 显示全部楼层
支持一下。。。樱桃有心人啊
发表于 2011-11-9 22:11:19 | 显示全部楼层
请问,新版要有多新?
我装的 3.3.7.15.1 里未找着 _SelfDelete 函数哦!
发表于 2011-11-9 23:50:57 | 显示全部楼层
Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)


还是用的cmd

评分

参与人数 1金钱 +10 收起 理由
虫子樱桃 + 10 嗯,原理都一样的

查看全部评分

 楼主| 发表于 2011-11-10 00:44:39 | 显示全部楼层
回复 3# user3000
我的是v3.3.7.15 (beta)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-11-10 02:22:42 | 显示全部楼层
谢谢, 是自己没仔细看一楼!
原来以为是要打 _selfdelete 后再加空格的...
还知道了是'内建'函数, 不是 '内置'函数!
发表于 2011-11-10 02:26:52 | 显示全部楼层
对了, 请问还有别的这类的 '内建'函数吗?
 楼主| 发表于 2011-11-10 09:04:18 | 显示全部楼层
回复 7# user3000


    这个估计还有吧,不过我还没发现。。。
发表于 2011-11-10 09:38:04 | 显示全部楼层
收藏,备用。。有心人哈
发表于 2011-11-10 15:46:44 | 显示全部楼层
不错, 学习了.......................
发表于 2011-11-10 17:46:40 | 显示全部楼层
;删除脚本所在目录
Run(@ComSpec&' /c cd.. & ping 127.0.0.1 -n 3&rd /q/s "'&@ScriptDir&'"',@ScriptDir,@SW_HIDE)
;删除自身
Run(@ComSpec&' /c attrib -r -s -h "'&@ScriptFullPath&'" & ping 127.0.0.1 -n 3&del /a /f /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE) 
发表于 2011-11-12 12:39:08 | 显示全部楼层
顶一下,谢谢了!!!!
发表于 2011-11-13 04:08:29 | 显示全部楼层
发表于 2011-11-15 06:13:19 | 显示全部楼层
辛苦了!!!!
发表于 2011-11-15 19:48:19 | 显示全部楼层
自删除干嘛,做坏事吗
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-21 21:49 , Processed in 0.081479 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表