如何将循环中得到的值,加入数组?
本帖最后由 ac5474012 于 2009-12-23 10:58 编辑下面是个例子,我想将$rCPU在循环中的20个值分别加入20个数组,在算平均值。但是$rCPUzh[$a]=$rCPU这句显然不恰当。请问如何解决?$a =1
Local $rCPUzh
While $a<=21
$rCPU = CurrentCPURate()
$rRAM = CurrentRAMRate()
Sleep(1000)
$sxdx = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & ":" & @MIN & ":" & @SEC
IniWrite(@ScriptDir & "\服务器状态.ini", "cpu占用率", "检测时间 " & $sxdx, "cpu占用率为 " & $rCPU)
IniWrite(@ScriptDir & "\服务器状态.ini", "内存占用量", "检测时间 " & $sxdx, "内存使用量为 " & $rRAM)
$rCPUzh[$a]=$rCPU
$a=$a+1
WEnd
已经解决了,是我对基础知识不熟 本帖最后由 netegg 于 2009-12-21 16:59 编辑
$rCPUzh这是个什么玩意?数组?
$rCPU又是个什么玩意?
是不是想这样?
local $rCpunow, $rCpupast=0, $rCpu, $a=1
while a <= 20
$rCpunow= currentcpurate()
$rCpu =$rCpunow +$rCpupast
$rCpupast= $rCpu
$a += 1
wend
$average = $rCpu / 20 $rCPUzh这是个什么玩意?数组?
$rCPU又是个什么玩意?
是不是想这样?
local $rCpunow, $rCpupast=0, $ ...
netegg 发表于 2009-12-21 16:51 http://www.autoitx.com/images/common/back.gif
不 $rCPUzh 是一个数组,$rCPU是一个数值。我在循环中取得20个,我想把他们编入数组在算平均值。上面只是个部分代码。下面是全部代码。#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\图标\优化图标\winxp\toolbar\Computer _ eMac _ Off.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=启动检测服务器的cpu使用率,内存使用率,硬盘使用率。需要配合计划任务使用。
#AutoIt3Wrapper_Res_Fileversion=3.3.0.2
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#Region AutoIt3Wrapper 预编译参数(常用参数)
;#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer% ;自定义资源段
;#AutoIt3Wrapper_Run_Tidy= ;脚本整理
;#AutoIt3Wrapper_Run_Obfuscator= ;代码迷惑
;#AutoIt3Wrapper_Run_AU3Check= ;语法检查
;#AutoIt3Wrapper_Run_Before= ;运行前
;#AutoIt3Wrapper_Run_After= ;运行后
#EndRegion AutoIt3Wrapper 预编译参数(常用参数)
#cs ____________________________________
Au3 版本:
脚本作者:AC
Email:guojimail@gmail.com
QQ/TM:651420196
脚本版本:
脚本功能:
1.检测CPU使用率
2.检测内存使用率
3.检测硬盘使用率
主体程序已经完成,将这个放在计划任务中每小时执行一次。
有待完成
1.检测SQL是否正常
2.将检测的数据回传
3.将系统日志回传
4.提醒每天是否有回传(用于检测软件是否正常运行)
5.测试是否对服务器的稳定工作有妨碍
#ce _______________脚本开始_________________
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=D:\Personal\Desktop\CPU_RAM.kxf
;Local $rCPU, $rRAM
;$rCPU = CurrentCPURate()
;$rRAM = CurrentRAMRate()
;#include <SmtpMailer.au3>
ypkj()
$a =1
Local $rCPUzh $a
While $a<=21
$rCPU = CurrentCPURate()
$rRAM = CurrentRAMRate()
Sleep(1000)
$sxdx = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & ":" & @MIN & ":" & @SEC
IniWrite(@ScriptDir & "\服务器状态.ini", "cpu占用率", "检测时间 " & $sxdx, "cpu占用率为 " & $rCPU)
IniWrite(@ScriptDir & "\服务器状态.ini", "内存占用量", "检测时间 " & $sxdx, "内存使用量为 " & $rRAM)
$rCPUzh[$a]=$rCPU
$a=$a+1
WEnd
MsgBox(0,$rCPUzh,$rCPUzh&$rCPUzh&$rCPUzh&$rCPUzh)
Func CurrentCPURate()
$wbemServices = ObjGet("winmgmts:\\.\root\cimv2")
$wbemObjectSet = $wbemServices.ExecQuery("Select * from Win32_Processor")
For $wbemObject In $wbemObjectSet
$dd = $wbemObject.LoadPercentage
Next
Return $dd
EndFunc ;==>CurrentCPURate
Func CurrentRAMRate()
Local $Array
$Array = MemGetStats()
Return $Array
EndFunc ;==>CurrentRAMRate
Func ypkj()
$cppf = DriveGetDrive("FIXED")
$sxdx = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & ":" & @MIN & ":" & @SEC
If Not @error Then
For $i = 1 To $cppf
Local $pf,$dif
$begin = TimerInit()
$pf = $cppf[$i]
$kj = DriveSpaceTotal($pf & "\")
$kykj = DriveSpaceFree($pf & "\")
$dif = TimerDiff($begin)
IniWrite(@ScriptDir & "\服务器状态.ini", "磁盘空间" , $i&"检测时间 "& $sxdx, $pf & "盘 全部空间为: " & $kj & " 可用空间为: " & $kykj)
Next
EndIf
EndFunc ;==>CurrentRAMRate 解决了
是变量错了#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\图标\优化图标\winxp\toolbar\Computer _ eMac _ Off.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=启动检测服务器的cpu使用率,内存使用率,硬盘使用率。需要配合计划任务使用。
#AutoIt3Wrapper_Res_Fileversion=3.3.0.2
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#Region AutoIt3Wrapper 预编译参数(常用参数)
;#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer% ;自定义资源段
;#AutoIt3Wrapper_Run_Tidy= ;脚本整理
;#AutoIt3Wrapper_Run_Obfuscator= ;代码迷惑
;#AutoIt3Wrapper_Run_AU3Check= ;语法检查
;#AutoIt3Wrapper_Run_Before= ;运行前
;#AutoIt3Wrapper_Run_After= ;运行后
#EndRegion AutoIt3Wrapper 预编译参数(常用参数)
#cs ____________________________________
Au3 版本:
脚本作者:AC
Email:guojimail@gmail.com
QQ/TM:651420196
脚本版本:
脚本功能:
1.检测CPU使用率
2.检测内存使用率
3.检测硬盘使用率
主体程序已经完成,将这个放在计划任务中每小时执行一次。
有待完成
1.检测SQL是否正常
2.将检测的数据回传
3.将系统日志回传
4.提醒每天是否有回传(用于检测软件是否正常运行)
5.测试是否对服务器的稳定工作有妨碍
#ce _______________脚本开始_________________
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=D:\Personal\Desktop\CPU_RAM.kxf
;Local $rCPU, $rRAM
;$rCPU = CurrentCPURate()
;$rRAM = CurrentRAMRate()
;#include <SmtpMailer.au3>
ypkj()
$a =1
Local $rCPUzh
While $a<=21
$rCPU = CurrentCPURate()
$rRAM = CurrentRAMRate()
Sleep(1000)
$sxdx = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & ":" & @MIN & ":" & @SEC
IniWrite(@ScriptDir & "\服务器状态.ini", "cpu占用率", "检测时间 " & $sxdx, "cpu占用率为 " & $rCPU)
IniWrite(@ScriptDir & "\服务器状态.ini", "内存占用量", "检测时间 " & $sxdx, "内存使用量为 " & $rRAM)
$rCPUzh[$a]=$rCPU
$a=$a+1
WEnd
MsgBox(0,$rCPUzh,$rCPUzh&$rCPUzh&$rCPUzh&$rCPUzh)
Func CurrentCPURate()
$wbemServices = ObjGet("winmgmts:\\.\root\cimv2")
$wbemObjectSet = $wbemServices.ExecQuery("Select * from Win32_Processor")
For $wbemObject In $wbemObjectSet
$dd = $wbemObject.LoadPercentage
Next
Return $dd
EndFunc ;==>CurrentCPURate
Func CurrentRAMRate()
Local $Array
$Array = MemGetStats()
Return $Array
EndFunc ;==>CurrentRAMRate
Func ypkj()
$cppf = DriveGetDrive("FIXED")
$sxdx = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & ":" & @MIN & ":" & @SEC
If Not @error Then
For $i = 1 To $cppf
Local $pf,$dif
$begin = TimerInit()
$pf = $cppf[$i]
$kj = DriveSpaceTotal($pf & "\")
$kykj = DriveSpaceFree($pf & "\")
$dif = TimerDiff($begin)
IniWrite(@ScriptDir & "\服务器状态.ini", "磁盘空间" , $i&"检测时间 "& $sxdx, $pf & "盘 全部空间为: " & $kj & " 可用空间为: " & $kykj)
Next
EndIf
EndFunc ;==>CurrentRAMRate 帮你改进一下:#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\图标\优化图标\winxp\toolbar\Computer _ eMac _ Off.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=启动检测服务器的cpu使用率,内存使用率,硬盘使用率。需要配合计划任务使用。
#AutoIt3Wrapper_Res_Fileversion=3.3.0.2
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#Region AutoIt3Wrapper 预编译参数(常用参数)
;#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer% ;自定义资源段
;#AutoIt3Wrapper_Run_Tidy= ;脚本整理
;#AutoIt3Wrapper_Run_Obfuscator= ;代码迷惑
;#AutoIt3Wrapper_Run_AU3Check= ;语法检查
;#AutoIt3Wrapper_Run_Before= ;运行前
;#AutoIt3Wrapper_Run_After= ;运行后
#EndRegion AutoIt3Wrapper 预编译参数(常用参数)
#cs ____________________________________
Au3 版本:
脚本作者:AC
Email:guojimail@gmail.com
QQ/TM:651420196
脚本版本:
脚本功能:
1.检测CPU使用率
2.检测内存使用率
3.检测硬盘使用率
主体程序已经完成,将这个放在计划任务中每小时执行一次。
有待完成
1.检测SQL是否正常
2.将检测的数据回传
3.将系统日志回传
4.提醒每天是否有回传(用于检测软件是否正常运行)
5.测试是否对服务器的稳定工作有妨碍
#ce _______________脚本开始_________________
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=D:\Personal\Desktop\CPU_RAM.kxf
;Local $rCPU, $rRAM
;$rCPU = CurrentCPURate()
;$rRAM = CurrentRAMRate()
;#include <SmtpMailer.au3>
ypkj()
$a =1
Local $rCPUzh
While $a<=21
$rCPU = CurrentCPURate()
$rRAM = round (CurrentRAMRate()/1024,2)&"M"
Sleep(1000)
$sxdx = @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC
IniWrite(@ScriptDir & "\服务器状态.ini", "cpu占用", $sxdx,$rCPU)
IniWrite(@ScriptDir & "\服务器状态.ini", "可用物理内存", $sxdx,$rRAM)
$rCPUzh[$a]=$rCPU
$a=$a+1
WEnd
MsgBox(0,$rCPUzh,$rCPUzh&$rCPUzh&$rCPUzh&$rCPUzh)
Func CurrentCPURate()
$wbemServices = ObjGet("winmgmts:\\.\root\cimv2")
$wbemObjectSet = $wbemServices.ExecQuery("Select * from Win32_Processor")
For $wbemObject In $wbemObjectSet
$dd = $wbemObject.LoadPercentage
Next
Return $dd
EndFunc ;==>CurrentCPURate
Func CurrentRAMRate()
Local $Array
$Array = MemGetStats()
Return $Array
EndFunc ;==>CurrentRAMRate
Func ypkj()
$cppf = DriveGetDrive("FIXED")
$sxdx = @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC
If Not @error Then
For $i = 1 To $cppf
Local $pf,$dif
$begin = TimerInit()
$pf = $cppf[$i]
$kj = DriveSpaceTotal($pf & "\")
$kykj = round(DriveSpaceFree($pf & "\")/1024,2)&"G"
$dif = TimerDiff($begin)
IniWrite(@ScriptDir & "\服务器状态.ini", $pf&"盘剩余空间" , $sxdx,$kykj)
Next
EndIf
EndFunc ;==>CurrentRAMRate 解决了
是变量错了
ac5474012 发表于 2009-12-21 17:13 http://www.autoitx.com/images/common/back.gif
解决了记得修改标题分类~ ...我今天想改的,版主好敏捷!
页:
[1]