xzrmail 发表于 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" )
EndSelectsys.ini
connect=1以上代码我想实现定时运行001.exe后,下次运行时自动运行002.exe---003---004............007.exe,运行完007.exe再自动转回来运行001.exe。。就这样循环。
可是我写的这代码不能实现。请高手指点一下是哪里错了?谢谢!

3mile 发表于 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

xzrmail 发表于 2010-7-26 20:10:28

楼主是这个意思吗?
3mile 发表于 2010-7-26 19:29 http://www.autoitx.com/images/common/back.gif


    还不行呢,不过谢谢你的帮忙。

3mile 发表于 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

3mile 发表于 2010-7-26 20:27:17

sorry,运行的是001.exe,002.exe吧。
把所有的RunWait("d:\" &$string & ".exe")改为RunWait("d:\00" &$string & ".exe")试试

xzrmail 发表于 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文件我是用作检测文件是否存在用的,你看这样好吗?希望把我这个改简单些,谢谢!

3mile 发表于 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

xzrmail 发表于 2010-7-26 21:06:59

回复 7# 3mile
哇!你真牛!问题你帮解决了。
非常谢谢你!

menfan1 发表于 2010-7-26 21:46:36

呵呵,学习一下。。
页: [1]
查看完整版本: 程序交替运行代码问题,请兄弟们帮忙。