[已解决]"if"与“else"问题
本帖最后由 waxy 于 2010-4-27 21:21 编辑麻烦帮我看一下以下代码看问题出在哪,我想通调用DOS命令实现局域网内时间同步,如果同步成功点“取消”按键,即关闭DOS窗口,再运行其它程序。
点“重试”再执行一次时间同步命令。通MsgBox返回的值利用"if"与“else"来判断,总是提示"if"或“else"没有声明。代码如下-------Local $time =Run(@ComSpec & " /k net time \\10.80.88.88 /set /y")
$LAN=MsgBox(5+32, "时间同步", "时间同步成功?")
If $LAN = 2 Then ProcessClose("cmd.exe")
$PID = ProcessExists("cmd.exe")
If $PID Then ProcessClose($PID)
;运行其它程序
Else
Local $time =Run(@ComSpec & " /k net time \\10.80.88.88 /set /y")
Exit
EndIf Local $time = Run(@ComSpec & " /k net time \\10.80.88.88 /set /y")
$LAN = MsgBox(5 + 32, "时间同步", "时间同步成功?")
If $LAN = 2 Then
ProcessClose("cmd.exe")
$PID = ProcessExists("cmd.exe")
If $PID Then ProcessClose($PID)
;运行其它程序
Else
$time = Run(@ComSpec & " /k net time \\10.80.88.88 /set /y")
Exit
EndIf 回复 2# 水木子
先谢了,为什么只要去掉“Local”直接使用变量$time即可。 回复水木子
先谢了,为什么只要去掉“Local”直接使用变量$time即可。
waxy 发表于 2010-4-24 14:46 http://www.autoitx.com/images/common/back.gif
这个说法要看"Dim / Global / Local / Const "部分,声明一个常/变量,都在代码前面声明!!
假如遇到在中间也使用的,那说明这个声明的常/变量 与上述代码无关!!! 回复 4# lchl0588
谢谢你的解答!明白了。 本帖最后由 lchl0588 于 2010-4-24 16:22 编辑
回复 5# waxy Local $time = Run(@ComSpec & " /k net time \\10.80.88.88 /set /y")
$LAN = MsgBox(5 + 32, "时间同步", "时间同步成功?")
If $LAN = 2 Then
ProcessClose("cmd.exe")
$PID = ProcessExists("cmd.exe")
If $PID Then ProcessClose($PID)
;运行其它程序
Else
$time ;= Run(@ComSpec & " /k net time \\10.80.88.88 /set /y")
Exit
EndIf关于这段代码:即然$time 已声明赋值,那Else 调用的"$time "没必要再书写一次!!!直接把后面的去掉就可以了!!!,这样才能体现声明的作用
$time ;= Run(@ComSpec & " /k net time \\10.80.88.88 /set /y") 回复waxy 关于这段代码:即然$time 已声明赋值,那Else 调用的"$time "没必要再书写一次!!!直接把后面 ...
lchl0588 发表于 2010-4-24 16:19 http://www.autoitx.com/images/common/back.gif
非常感谢你的指点。
页:
[1]