找回密码
 加入
搜索
查看: 1680|回复: 13

循环判断问题

[复制链接]
发表于 2009-6-27 15:08:01 | 显示全部楼层 |阅读模式
本帖最后由 qzdisk 于 2009-6-27 21:22 编辑
While 1
        $varh = 5
        If $varh = "5"   Then
                MsgBox(48," 提示","连接正常")
        Else 
        Run(@ScriptDir & "\1.bat")
        EndIf
WEnd
我想在   $varh 不等于5的情况  用IF判断给出结果然后 运行一个批处理!
但是我发现在我要是这样写的话  $varh不等于5的时候 劲会无限运行1.bat!
怎让他无限次判断 但是只运行一次 1.bat
发表于 2009-6-27 15:11:47 | 显示全部楼层
再把 $varh 改成初始值就好了

While 1
        $varh = 5
        If $varh = "5"   Then
                MsgBox(48," 提示","连接正常")
        Else
                Run(@ScriptDir & "\1.bat")
                $varh = 0
        EndIf
WEnd
发表于 2009-6-27 15:13:15 | 显示全部楼层
$cc = 1
While 1

        $varh = 5 

        If $varh = "5"  and $cc  Then

                MsgBox(48," 提示","连接正常")

        $cc = 0

        Else 

        Run(@ScriptDir & "\1.bat")

        EndIf

WEnd
这个是前几天版内版友教偶的,现分享给你
 楼主| 发表于 2009-6-27 15:56:23 | 显示全部楼层
上述2位朋友给的好像都不行!  我试过了还是不行!
我的意思是 Run(@ScriptDir & "\1.bat") 这部能让他只运行一次吗?
发表于 2009-6-27 16:32:02 | 显示全部楼层
While 1
        $varh = 5
        If $varh = "5"   Then
                MsgBox(48," 提示","连接正常")
        Else 
        Run(@ScriptDir & "\1.bat")
       exitloop
        EndIf
WEnd
 楼主| 发表于 2009-6-27 17:26:02 | 显示全部楼层
[au3]While 1
        $varh = 5
        If $varh = "5"   Then
                MsgBox(48," 提示","连接正常")
        Else
        Run(@ScriptDir & "\1.bat")
       exitloop
        EndIf
WEnd[/ ...
jhun 发表于 2009-6-27 16:32


这个确实能达到那个效果!但是似乎程序就停止实时运行判断了!
发表于 2009-6-27 17:34:05 | 显示全部楼层
$a=6

While 1
        
        Select
                
                Case $a=5
                        MsgBox(48," 提示","连接正常")
                        Run("notepad.exe")
        EndSelect
WEnd
发表于 2009-6-27 17:40:36 | 显示全部楼层
这个确实能达到那个效果!但是似乎程序就停止实时运行判断了!
qzdisk 发表于 2009-6-27 17:26

那你不是自相矛盾了吗,你不让BAT继续运行却又要继续侦测然后再运行?除非你再加其他条件,运行完了BAT这个变量会改变,又或者间隔多长时间再来判断
 楼主| 发表于 2009-6-27 19:04:14 | 显示全部楼层
。。。。我是要做一个实时检测的程序!当进程断开后用批处理启动他!
发表于 2009-6-27 19:30:41 | 显示全部楼层
那很简单啊,只要加个延迟就可以了
发表于 2009-6-27 19:31:52 | 显示全部楼层
本帖最后由 jhun 于 2009-6-27 19:33 编辑

While 1
        $varh = 5
        If $varh = "5"   Then
                MsgBox(48," 提示","连接正常")
        Else 
        Run(@ScriptDir & "\1.bat")
         sleep(2000)
        EndIf
        sleep(500)
WEnd
 楼主| 发表于 2009-6-27 21:22:21 | 显示全部楼层
我明白了
谢谢!
发表于 2009-9-22 08:01:06 | 显示全部楼层
你明白了 我怎么看不明白呢?
发表于 2009-9-22 09:58:31 | 显示全部楼层
你明白了 我怎么看不明白呢?
刘强 发表于 2009-9-22 08:01


有问题自己发帖好了,这样无意义
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-4 16:16 , Processed in 0.073871 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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