2017-05-02 11 views
0

내 VBScript에는 FormatDateTime 기능을 사용하여 현재 날짜 및 시간 정보를 기록하는 로그 파일이 있습니다.형식 로그 파일에 사용할 최대 시간 (밀리 초)

나는 밀리 초까지 또한 다음과 같은 형식으로 시간 서식을 좋아 :

MM/DD/YY hh:mm:ss:mss AM/PM 

그러나이 불행하게도 FormatDateTime 이런 방식으로 포맷 시간을 허용하지 않습니다. 이것을 검색 한 후 this answer을 찾았으며 Timer 기능을 사용하는 방법에 관한 것입니다. 따라서 로그를 여러 번 사용하여 로그하는 시간을 기록 할 수 없습니다.

로 W3 스쿨 상태,

타이머 기능 오전 12 이후의 초 수를 반환합니다.

는하지만 그래서 Timer 기능이을위한 최상의 옵션이 아닙니다 사용하여 내 로그 파일도 오전 12시 전에 위의 형식으로 시간을 기록합니다.

로그 파일에서이 작업을 올바르게 수행하는 방법을 알려주십시오.

답변

0

기능 Now()이 형식으로 현재 시스템의 날짜와 시간을 반환됩니다 VBScript를 - 당신이 밀리 초를 추가해야하는 경우, 5/2/2017 9:45:34 AM 그러나 당신이 Timer 사용할 수 있습니다 - 같은 일을 Timer math from here

'capture the date and timer together so if the date changes while 
'the other code runs the values you are using don't change 
t = Timer 
dateStr = Date() 
temp = Int(t) 

milliseconds = Int((t-temp) * 1000) 

seconds = temp mod 60 
temp = Int(temp/60) 
minutes = temp mod 60 
hours = Int(temp/60) 
label = "AM" 

If hours > 12 Then 
    label = "PM" 
    hours = hours-12 
End If 

'format it and add the date 
strTime = LeftPad(hours, "0", 2) & ":" 
strTime = strTime & LeftPad(minutes, "0", 2) & ":" 
strTime = strTime & LeftPad(seconds, "0", 2) & "." 
strTime = strTime & LeftPad(milliseconds, "0", 3) 


WScript.Echo dateStr & " " & strTime & " " & label 

'this function adds characters to a string to meet the desired length 
Function LeftPad(str, addThis, howMany) 
    LeftPad = String(howMany - Len(str), addThis) & str 
End Function 
+0

나에게 여기 LeftPad''의 목적을 말해 때문에이 코드에서는 배열로 Now()을 분할하고 있습니다. – GTAVLover

+1

수정 됨 - 함수를 작성했지만 구현하지 않았습니다. 이제 수정되었습니다. LeftPad는 문자열의 왼쪽에 '0'을 추가하여 항상 같은 길이인지 확인합니다. 그것없이 12시 9 분 오전 12시 9 분으로 인쇄 –

+0

그걸 주셔서 감사합니다 :-) – GTAVLover

0

또 다른 방법은, 조금 적은 코드로 우리가 : 밀리 초를 제외한 모든 것을 사용할 수 있습니다

WScript.Echo PrintTimeStamp() 

Function PrintTimeStamp() 
    nowParts = SPLIT(Now(), " ") 
    timePart = nowParts(1) 
    t = Timer 
    milliseconds = Int((t-Int(t)) * 1000) 
    PrintTimeStamp = nowParts(0) & " " & LeftPad(nowParts(1), "0", 8) & "." & LeftPad(milliseconds, "0", 3) & " " & nowParts(2) 
End Function 
Function LeftPad(str, addThis, howMany) 
    LeftPad = String(howMany - Len(str), addThis) & str 
End Function 
+0

'Do WScript.Echo Loop '와 같은 루프에서 이것을 사용하려고하면 같은 시간 agai를 반복해서 보여줍니다. - | – GTAVLover

+0

함수에서 시간 수집 부분을 래핑했습니다. 이제 루프 내에서 함수를 호출 할 수 있습니다. –