webForumDet fria alternativet

ping script

3 svar · 313 visningar · startad av acka

ackaMedlem sedan jan. 2001643 inlägg
#1

Hej
Försöker få ett script att pinga en nod och returnera enbart resultatet (svarstid)

Lyckades lägga vantarna på ett script som jag vet fungerar.
Kan dock vara så att han kör det på en svensk XP och jag kör det på en engelsk XP

Hur som helst fungerar det inte för mig och jag är en noob när det gäller VBscript så jag kan inte lösa det.
Kanske kan någon av er hjälpa mig.

Scriptet ser ut så här.

'Syntax = cscript.exe //NoLogo PingStat.vbs <datornamn eller ip>
'
'

Option Explicit
Dim objArgs, oShell, CmdOutput, M_Value, I, ArrStr, Cmd

'Här ställer man in defaultvärde
M_Value=2000

Set objArgs = WScript.Arguments
Set oShell = CreateObject("Wscript.Shell")
	Set Cmd = oShell.Exec("ping " & wscript.arguments(0))
	While Not Cmd.StdOut.AtEndOfStream
	CmdOutput = UCase(Cmd.StdOut.Readline())
	If InStr(CmdOutput,"MEDEL") Then
		ArrStr=Split(CmdOutput)
		M_Value=ArrStr(14)
	End if
	Wend
	
	'For I=0 to UBound(ArrStr)
	'wscript.echo  I & "=" & arrstr(I)
	'Next
	

wscript.echo M_Value

När jag sen ska köra scriptet så skrivar jag i cmd tex.

cscript.exe //NoLogo PingStat.vbs 192.36.125.18 > test.txt

Och då var min förhoppning att jag skulle få svarstiden från https://www.sunet.se till min txt fil.
Men det enda som den exporterar dit är M_Value värdet som är 2000.

Är det någon som kan tipsa om vad som inte stämmer så skulle det vara guld värt :)

Tanken med detta är att jag sen ska använda det värdet till att lägga en graf i mrtg på svarstider till vissa noder.

/Red....
Vet inte om det hamnade rätt men någon får väl flytta den om den är i fel forum.

Nexus86Medlem sedan okt. 20022 683 inlägg
#2

Felet är att 14 är utanför arrayen. Använd följande (fungerar iaf för mig):

'Syntax = cscript.exe //NoLogo PingStat.vbs <datornamn eller ip>
'
'

Option Explicit
Dim objArgs, oShell, CmdOutput, M_Value, I, ArrStr, Cmd

'Här ställer man in defaultvärde
M_Value=2000

Set objArgs = WScript.Arguments
Set oShell = CreateObject("Wscript.Shell")
	Set Cmd = oShell.Exec("ping " & wscript.arguments(0))
	While Not Cmd.StdOut.AtEndOfStream
	CmdOutput = UCase(Cmd.StdOut.Readline())
	If InStr(CmdOutput,"MEDEL") Then
		ArrStr=Split(CmdOutput)
		M_Value=ArrStr(UBound(ArrStr))
	End if
	Wend
	
	'For I=0 to UBound(ArrStr)
	'wscript.echo  I & "=" & arrstr(I)
	'Next
	

wscript.echo M_Value

cscript //NoLogo PingStat.vbs webforum.nu gav mig: 39MS som svar

ackaMedlem sedan jan. 2001643 inlägg
#3

Tack Nexus..

Funkar kanon.
Sen om man byter ut MEDEL mot AVERAGE så funkar det i en eng version av operativ har jag listat ut :)

/AE

Nexus86Medlem sedan okt. 20022 683 inlägg
#4

Jo jag märkte det jag med eftersom jag var tvungen att göra så. ;)

Genererad på 362 ms · cache AV · v20260730165559-full.f96bc7eb