Cmd 每天生成日志

Cmd 每天生成日志,cmd,vbscript,windows-server-2008,Cmd,Vbscript,Windows Server 2008,我正在尝试使用以下脚本创建一天的日志文件: 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

我正在尝试使用以下脚本创建一天的日志文件:

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

嗯。。。嗯,是的,你的日志文件不会因为你要修改它而神奇地改变。你需要告诉你的代码去做

由于基本上运行的是无限循环(由于
ping-t
),因此需要检查循环中的日期,并在日期更改时打开一个新文件:

d = Date - 1
Set logfile = Nothing
Do Until oExec.StdOut.AtEndOfStream
    pingline = Date & " " & Time & " " & oExec.StdOut.ReadLine
    If d <> Date Then
        If Not logfile Is Nothing Then logfile.Close
        d = Date
        myDateFormat = Day(d) & "-" & Month(d) & "-" & Year(d)
        Set logfile = fso.OpenTextFile(...)
    End If
    logfile.WriteLine(pingline)
Loop
logfile.Close
d=日期-1
设置日志文件=无
直到oExec.StdOut.AtEndOfStream
pingline=Date&&&Time&&oExec.StdOut.ReadLine
如果你确定日期的话
如果不是logfile,则logfile.Close
d=日期
myDateFormat=日(d)&“-”月(d)&“-”年(d)
设置logfile=fso.OpenTextFile(…)
如果结束
logfile.WriteLine(pingline)
环
日志文件,关闭

您的日志文件名是什么?PingRemote 12-10-2017.log
d = Date - 1
Set logfile = Nothing
Do Until oExec.StdOut.AtEndOfStream
    pingline = Date & " " & Time & " " & oExec.StdOut.ReadLine
    If d <> Date Then
        If Not logfile Is Nothing Then logfile.Close
        d = Date
        myDateFormat = Day(d) & "-" & Month(d) & "-" & Year(d)
        Set logfile = fso.OpenTextFile(...)
    End If
    logfile.WriteLine(pingline)
Loop
logfile.Close