$g_szVersion = "Ping_Computer"
If WinExists($g_szVersion) Then Exit ; 此脚本已经运行了
AutoItWinSetTitle($g_szVersion) ;定义程序的标题
#Include <date.au3> ;引用date.au3用来显示日期与时间
;设置快捷方式Ctrl+Alt+x
HotKeySet("^!x", "MyExit")
;设置三个变量
$SouceAddress="SouceAddress.txt" ;用来读取IP地址的文件,每行一个IP地址,此文件必须存在否则出现异常
$PingList="PingList.txt" ;用来输出结果的文件,如果不存在则自动生成
$Num=InputBox("10秒后关闭窗口","请输入Ping的循环次数","空值与默认为3次"," M2",200,120,@DesktopWidth/2-50,@DesktopHeight/2-50,5) ;用来定义Ping循环的次数
Select
Case @error=1
Exit
Case @error=2 or @error=0
$Num=3
EndSelect
;打开并向$PingList文件是写入日期时间
$info=FileOpen($PingList,1)
FileWrite($info, "==========================================" & @CRLF)
FileWrite($info, "日期/时间:" & _now() & @CRLF) ;写入当前日期与时间
FileWrite($info, "==========================================" & @CRLF)
;执行SPing功能
Sping()
;关闭文件
fileclose($info)
;定义退出功能
Func MyExit()
Exit
EndFunc
;定义Ping功能,并写入指定文件
func SPing()
;打开$SouceAddress文件,如果出错则提示信息并退出程序
$file = FileOpen($SouceAddress, 0)
If $file = -1 Then
MsgBox(0, "错误", "目标文件不存在或无法打开。")
Exit
EndIf
While 1
;读取一行,并判断是否最后,是则退出
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
;建for...Next循环
for $i=1 to $Num step 1
$var = Ping($line,250)
If $var Then
FileWrite($info, $line & "主机在线,收发时间长度是" & $var & @CRLF)
Else
;按@error出错参数输出信息
Select
case @error=1
FileWrite($info, $line & "目标主机离线" & @CRLF)
case @error=2
FileWrite($info, $line & "目标主机无法连接" & @CRLF)
case @error=3
FileWrite($info, $line & "目标错误" & @CRLF)
case @error=4
FileWrite($info, $line & "其它错误" & @CRLF)
EndSelect
EndIf
Next
FileWrite($info, @CRLF)
Wend
FileClose($file)
EndFunc
posted on 2007-06-30 12:28
疾风随影 阅读(946)
评论(2) 编辑 收藏 引用 所属分类:
Script & Batch column