auto 发表于 2011-11-15 22:35:49

请教一个延时执行的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 不存在

autt 发表于 2011-11-15 22:46:54

你这个是两条命令了吧..

user3000 发表于 2011-11-15 23:10:42

明显,又是单引号与双引号混合使用产生的问题...

pighead456 发表于 2011-11-16 00:11:56

虽然 au3 允许调用 bat

但是 我建议写 纯粹的 au3

非要调用 bat不要用这种 把代码 写进 au3 的混合形式

你就干脆 写一个 bat

然后 再隐藏调用

menfan1 发表于 2011-11-16 09:39:26

Sleep(5000)
FileCopy(@ScriptDir & "\AA.EXE", @ScriptDir & "\BB.EXE", 9)
FileDelete(@ScriptDir & "\AA.EXE")

auto 发表于 2011-11-16 09:40:52

回复 5# menfan1


    这个不行。。因为BB。exe 当前运行的程序。。
说它不存在,是因为自身调用删除,,再运行

menfan1 发表于 2011-11-16 09:45:16

回复 6# auto


你是做自动更新程序吧,可以调一个程序结束它,然后再更新,最后启动吧

auto 发表于 2011-11-16 09:52:24

回复 7# menfan1


   如果这样就要写两个程序,一个专门来做UPDATE的。。想把所有弄到一个程序里面就算了
延时删除和延时重启没有问题,就是下载后延时更名这里不起作用

menfan1 发表于 2011-11-16 10:25:06

回复 8# auto


我一直都是这么做的哈,这样处理清晰明了。

yeqing880 发表于 2011-11-16 16:59:47

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)

还有要注意语法。。如果路径中含有空格 要在头尾加入双引号

autt 发表于 2011-11-16 21:02:37

里面的 & 叫做管道命令用于连接两条dos命令。。楼主的命令没有问题
             谢谢

xms77 发表于 2011-11-16 21:41:35

回复 8# auto
我也是这样做的

auto 发表于 2011-11-16 22:12:24

回复 10# yeqing880


   哈哈,搞错了,中午把RUN的输出来一看,就知道错了,加了路径和文件名是错的..
不能添加@ScriptFullPath

谢谢!!

menfan1 发表于 2011-11-17 09:40:33

是语法有点问题,不能加@ScriptFullPath,加&可以实现延时更名,但是这样做能实现自动更新吗?

yeqing880 发表于 2011-11-17 16:10:53

晕怎么不能编辑了。。。搞错了。。应该把

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]
查看完整版本: 请教一个延时执行的RUN,好像不起作用,不知道那里写错了[已解决]