找回密码
 加入
搜索
查看: 3365|回复: 8

[AU3基础] 程序交替运行代码问题,请兄弟们帮忙。

  [复制链接]
发表于 2010-7-26 18:55:51 | 显示全部楼层 |阅读模式
本帖最后由 xzrmail 于 2010-7-26 20:05 编辑
Dim $string
$string=IniRead (  "sys.ini", "sys", "connect",  "0" )
Select
        Case $string=1
                run ("d:\001.exe")                
                IniWrite( "sys.ini", "sys", "connect", "1" )
        Case $string=2
                run ("d:\002.exe")
                IniWrite( "sys.ini", "sys", "connect", "2" )
        Case $string=3
                run ("d:\003.exe")
                IniWrite( "sys.ini", "sys", "connect", "3" )
        Case $string=4
                run ("d:\004.exe")
                IniWrite( "sys.ini", "sys", "connect", "4" )
        Case $string=5
                run ("d:\005.exe")
                IniWrite( "sys.ini", "sys", "connect", "5" )
        Case $string=6
                run ("d:\006.exe")
                IniWrite( "sys.ini", "sys", "connect", "6" )
        Case $string=7
                run ("d:\007.exe")
                IniWrite( "sys.ini", "sys", "connect", "7" )
EndSelect
sys.ini
[sys]
connect=1
以上代码我想实现定时运行001.exe后,下次运行时自动运行002.exe---003---004............007.exe,运行完007.exe再自动转回来运行001.exe。。就这样循环。
可是我写的这代码不能实现。请高手指点一下是哪里错了?谢谢!
发表于 2010-7-26 19:29:54 | 显示全部楼层
楼主是这个意思吗?
_run();未作测试,可能死循环。
Func _Run()
        Dim $string = IniRead("sys.ini", "sys", "connect", "0")
        If $string > 0 And $string<7 Then
                RunWait("d:" &$string & ".exe")
                IniWrite("sys.ini", "sys", "connect", $string+1)
                _run()
        ElseIf $string=0 Then
                IniWrite("sys.ini", "sys", "connect", $string)
                Return
        ElseIf $string=7 Then
                RunWait("d:" &$string & ".exe")                
                MsgBox(0,0,IniRead("sys.ini", "sys", "connect", "0"))
                $msg=MsgBox(4,"警告","已经完成一轮,还要继续吗?")
                If $msg=6 Then                        
                        IniWrite("sys.ini", "sys", "connect", "1")
                        _run()
                Else
                        Return
                EndIf
        EndIf
EndFunc   ;==>_Run
 楼主| 发表于 2010-7-26 20:10:28 | 显示全部楼层
楼主是这个意思吗?
3mile 发表于 2010-7-26 19:29



    还不行呢,不过谢谢你的帮忙。
发表于 2010-7-26 20:19:29 | 显示全部楼层
每次都手动运行?
第一次执行1.exe
第二次执行2.exe
......
执行7.exe进归0(或归1)?如此反复?
_run()
Func _Run()
        Dim $string = IniRead("sys.ini", "sys", "connect", "0")
        If $string > 0 And $string<7 Then
                RunWait("d:" &$string & ".exe")
                IniWrite("sys.ini", "sys", "connect", $string+1)
                Return
        ElseIf $string=0 Then
                IniWrite("sys.ini", "sys", "connect", $string)
                Return
        ElseIf $string>=7 Then
                RunWait("d:" &$string & ".exe")                
                        IniWrite("sys.ini", "sys", "connect", "1")
                        Return
        EndIf
EndFunc   ;==>_Run
发表于 2010-7-26 20:27:17 | 显示全部楼层
sorry,运行的是001.exe,002.exe吧。
把所有的RunWait("d:\" &$string & ".exe")改为RunWait("d:\00" &$string & ".exe")试试
 楼主| 发表于 2010-7-26 20:52:08 | 显示全部楼层
本帖最后由 xzrmail 于 2010-7-27 01:10 编辑
If FileExists("e:\home\001.ini") Then
    FileCopy("e:\home\001.rar", "e:\WebServer\html\add\ad\home.rar", 1)
    FileMove("e:\home\001.ini", "e:\home\002.ini")
Else
    If FileExists("e:\home\002.ini") Then
        FileCopy("e:\home\002.rar", "e:\WebServer\html\add\ad\home.rar", 1)
        FileMove("e:\home\002.ini", "e:\home\003.ini")
    Else
        If FileExists("e:\home\003.ini") Then
            FileCopy("e:\home\003.rar", "e:\WebServer\html\add\ad\home.rar", 1)
            FileMove("e:\home\003.ini", "e:\home\004.ini")
        Else
           If FileExists("e:\home\004.ini") Then
               FileCopy("e:\home\004.rar", "e:\WebServer\html\add\ad\home.rar", 1)
               FileMove("e:\home\004.ini", "e:\home\005.ini")
           Else
               If FileExists("e:\home\005.ini") Then
                   FileCopy("e:\home\005.rar", "e:\WebServer\html\add\ad\home.rar", 1)
                   FileMove("e:\home\005.ini", "e:\home\006.ini")
               Else
                   If FileExists("e:\home\006.ini") Then
                       FileCopy("e:\home\006.rar", "e:\WebServer\html\add\ad\home.rar", 1)
                       FileMove("e:\home\006.ini", "e:\home\007.ini")
                   Else
                   If FileExists("e:\home\007.ini") Then
                       FileCopy("e:\home\007.rar", "e:\WebServer\html\add\ad\home.rar", 1)
                       FileMove("e:\home\007.ini", "e:\home\001.ini")
                   Else
                   EndIf
                   EndIf
               EndIf
           EndIf
        EndIf
    EndIf
EndIf
还是不行,我刚刚用上面这种选择语句的笨方法写了一个,还真能用。ini文件我是用作检测文件是否存在用的,你看这样好吗?希望把我这个改简单些,谢谢!
发表于 2010-7-26 21:00:36 | 显示全部楼层
本帖最后由 3mile 于 2010-7-26 21:06 编辑

回复 6# xzrmail
用这个代替:
For $i = 1 To 7
        If FileExists("e:\home\00" & $i & ".ini") Then
                FileCopy("e:\home\00" & $i & ".rar", "e:\WebServer\html\add\ad\home.rar", 1)
                If $i < 7 Then
                        FileMove("e:\home\00" & $i & ".ini", "e:\home\00" & $i + 1 & ".ini")
                Else
                        FileMove("e:\home\00" & $i & ".ini", "e:\home\001.ini")
                EndIf
                ExitLoop
        EndIf
Next

评分

参与人数 1金钱 +25 收起 理由
afan + 25

查看全部评分

 楼主| 发表于 2010-7-26 21:06:59 | 显示全部楼层
回复 7# 3mile
哇!你真牛!问题你帮解决了。
非常谢谢你!
发表于 2010-7-26 21:46:36 | 显示全部楼层
呵呵,学习一下。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 12:18 , Processed in 0.092296 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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