generuj dziennik dla każdego dnia .vbs

0

Próbuję utworzyć plik dziennika na ten dzień za pomocą tego skryptu

hostIp      = wscript.arguments(0)
logfilename = wscript.arguments(1)
Set fso     = CreateObject("Scripting.FileSystemObject")
Set Shell   = CreateObject("Wscript.Shell")
' OpenTextFile Method requires a Const value
' (Over)Write = 2  Append = 8  
    d = Day(Now) 
    m = Month(Now)  
    y = Year(Now)
    myDateFormat= d & "-" & m & "-" & y 
Set logfile = fso.OpenTextFile(logfilename & " " & myDateFormat & ".log", 8, True)
shellstring = "%comspec% /c ping -t -f -l 32 -w 1000 " & hostIP
Set oExec   = Shell.Exec(shellstring)
wscript.echo "Ping Error log With Timestamp - Ctrl + C to halt"
Do While oExec.StdOut.AtEndOfStream <> True
      pingline = Date & " " & Time & " " & oExec.StdOut.ReadLine
'      If InStr(pingline, "TTL=") = 0 Then
         logfile.WriteLine(pingline)
'      End If
Loop

Myślałem, że jest w porządku, ale uruchomiłem go na 3 dni i jest tylko jeden plik zamiast 3. Jakieś pomysły na temat tego, co jest nie tak ze skryptem? btw Uruchom ten skrypt na cmd z tą linią

FileName ip logname.log
Rildo Gomez
źródło
Dodaj instrukcje zapisu do pliku dziennika, aby wydrukować wartości d, „m”, „y”, „plik dziennika”, aby zweryfikować logikę. Zaktualizuj pytanie, podając odpowiednie informacje.
Ramhound

Odpowiedzi:

0

Czy to pomaga:

dim objShell : set ObjShell  = CreateObject("Wscript.Shell")
dim objFso   : set objFso    = CreateObject("Scripting.FileSystemObject")

dim shellstring : shellstring = "%comspec% /c ping -t -f -l 32 -w 1000 " & wscript.arguments(0)

dim oExec : set oExec = ObjShell.Exec(shellstring)

do while oExec.StdOut.AtEndOfStream <> true
  log( oExec.StdOut.ReadLine )
loop

function log(strLineIn)

  myDateFormat= Day(Now) & "-" & Month(Now) & "-" & Year(Now)

  dim logfile : set logfile = objFso.OpenTextFile(wscript.arguments(1) & " " & myDateFormat & ".log", 8, True)

  if instr(strLineIn, "TTL") > 0 then
    logfile.writeline date() & "-" & time() & ": " & strLineIn
  end if

  logfile.close

end function
Pomocna dłoń
źródło