请教一个延时执行的RUN,好像不起作用,不知道那里写错了[已解决]
本帖最后由 auto 于 2011-11-16 22:13 编辑Run(@ComSpec & ' /c ping 127.0.0.1 -n 5&REN AA.EXE BB.EXE "' & @ScriptFullPath & '"', @ScriptDir, @SW_HIDE)
AA.exe 存在, BB.exe 不存在 你这个是两条命令了吧.. 明显,又是单引号与双引号混合使用产生的问题... 虽然 au3 允许调用 bat
但是 我建议写 纯粹的 au3
非要调用 bat不要用这种 把代码 写进 au3 的混合形式
你就干脆 写一个 bat
然后 再隐藏调用 Sleep(5000)
FileCopy(@ScriptDir & "\AA.EXE", @ScriptDir & "\BB.EXE", 9)
FileDelete(@ScriptDir & "\AA.EXE") 回复 5# menfan1
这个不行。。因为BB。exe 当前运行的程序。。
说它不存在,是因为自身调用删除,,再运行 回复 6# auto
你是做自动更新程序吧,可以调一个程序结束它,然后再更新,最后启动吧 回复 7# menfan1
如果这样就要写两个程序,一个专门来做UPDATE的。。想把所有弄到一个程序里面就算了
延时删除和延时重启没有问题,就是下载后延时更名这里不起作用 回复 8# auto
我一直都是这么做的哈,这样处理清晰明了。 Run(@ComSpec & ' /c ping 127.0.0.1 -n 5&REN AA.EXE BB.EXE "' & @ScriptFullPath & '"', @ScriptDir, @SW_HIDE)
里面的 & 叫做管道命令用于连接两条dos命令。。楼主的命令没有问题
为什么要在后面加入 @ScriptFullPath呢。。要加也得在前面加啊
Run(@ComSpec & ' /c ping 127.0.0.1 -n 1& REN "'&@ScriptFullPath&'\AA.EXE " "'&@ScriptFullPath&'\bb.exe" & pause', @ScriptDir, @SW_show)
还有要注意语法。。如果路径中含有空格 要在头尾加入双引号 里面的 & 叫做管道命令用于连接两条dos命令。。楼主的命令没有问题
谢谢 回复 8# auto
我也是这样做的 回复 10# yeqing880
哈哈,搞错了,中午把RUN的输出来一看,就知道错了,加了路径和文件名是错的..
不能添加@ScriptFullPath
谢谢!! 是语法有点问题,不能加@ScriptFullPath,加&可以实现延时更名,但是这样做能实现自动更新吗? 晕怎么不能编辑了。。。搞错了。。应该把
Run(@ComSpec & ' /c ping 127.0.0.1 -n 5&REN AA.EXE BB.EXE "' & @ScriptFullPath & '"', @ScriptDir, @SW_HIDE)
换成
Run(@ComSpec & ' /c ping 127.0.0.1 -n 1& REN "'&@ScriptDir&'\AA.EXE " "'&@ScriptDir&'\bb.exe" & pause', @ScriptDir, @SW_show)
页:
[1]