虫子樱桃 发表于 2011-11-9 20:10:33

au3自删除的归纳

本帖最后由 虫子樱桃 于 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就出来啦
咋调用?地球人都知道啊 ---

haijie1223 发表于 2011-11-9 20:23:09

支持一下。。。樱桃有心人啊

user3000 发表于 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

虫子樱桃 发表于 2011-11-10 00:44:39

回复 3# user3000
我的是v3.3.7.15 (beta)



user3000 发表于 2011-11-10 02:22:42

谢谢, 是自己没仔细看一楼!
原来以为是要打 _selfdelete 后再加空格的...
还知道了是'内建'函数, 不是 '内置'函数!

user3000 发表于 2011-11-10 02:26:52

对了, 请问还有别的这类的 '内建'函数吗?

虫子樱桃 发表于 2011-11-10 09:04:18

回复 7# user3000


    这个估计还有吧,不过我还没发现。。。

menfan1 发表于 2011-11-10 09:38:04

收藏,备用。。有心人哈

uxuuexqyxwk 发表于 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)

Leeben 发表于 2011-11-12 12:39:08

顶一下,谢谢了!!!!

江甫杞令 发表于 2011-11-13 04:08:29

打酱油的,混点分数提高下等级,谁然我是路过,但是也不是水帖子
Dragon Nest Gold,vindictus gold,swg credits,silkroad gold,NosTale Gold,Knight Noah,Eden Eternal gold, Elsword ED,tibia gold,shaiya gold,rs2 gold,rohan gold,RIFT Platinum,RIFT Plat,RIFT Gold,rappelz gold,rappelz rupees,perfect world gold,pw gold,Metin2 Yang,Metin2 Gold,maplestory mesos,mabinogi gold,lineage 2 adena,guild wars gold,ffxiv gil,ffxi gil,2moons dil, 4story money, 4story Luna, 4Story Gold, 9Dragons gold, Aion Kinah, Buy Aion Kinah, Buy Aion Gold, apb gold, Cabal Alz, Cabal Gold, dfo gold, dofus kamas, EVE ISK, eq2 plat,

geshenggang4 发表于 2011-11-15 06:13:19

辛苦了!!!!

765058729 发表于 2011-11-15 19:48:19

自删除干嘛,做坏事吗
页: [1] 2 3
查看完整版本: au3自删除的归纳