달력

1

« 2025/1 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

스크립트로 단일 임계값 비교가 아닌 다수의 임계값 비교가 필요한 경우 VBS VBScript
파일로 이전 수집 값을 기록했다가 샘플링 횟수와 임계치 비교
예를 들면, 5회 수집 후 5회 연속 임계값 초과 시 등등

' 파라미터로 비교 횟수, 임계값 제공
Set oArgs = WScript.Arguments
MonCount = oArgs(0)
Threshold = oArgs(1)

' 로그 파일 위치
strLogFile = "C:\TEST.Log"

Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strLogFile) Then
Else Set objTextFile = objFSO.CreateTextFile(strLogFile)
End If


' 값 가져오는 로직 추가
' CurTemp = XXXX


On Error Resume Next
Set objTextFile = objFSO.OpenTextFile(strLogFile, ForReading)
FirstLine = objTextFile.ReadLine & CurTemp & "|"
If Err.Number <> 0 Then
FirstLine = CurTemp & "|"
End If
arrTemp = Split(FirstLine,"|")

If cInt(UBound(arrTemp)) > cInt(MonCount) Then
FirstLine = ""
For i=0 To MonCount-2
arrTemp(i) = arrTemp(i+1)
FirstLine = FirstLine & arrTemp(i) & "|"
Next
FirstLine = FirstLine & CurTemp & "|"
End If
Set objTextFile = objFSO.OpenTextFile(strLogFile, ForWriting)
objTextFile.Write(FirstLine)
objTextFile.Close
Set objFSO = Nothing

' 임계치 비교
arrTemp = Split(FirstLine,"|")
OverCount = 0
For i =0 To Ubound(arrTemp)-1
If cInt(arrTemp(i)) > cInt(Threshold) Then
OverCount = OverCount + 1
End If
Next

If cInt(OverCount) > 0 Then
WScript.Echo "샘플링 수: "& MonCount & ", 초과 수: " & OverCount
Else WScript.Echo "임계값 초과 안 함"
End If

:
Posted by 커널64