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