2017-04-25 22 views
1

如何在使用Start-Transcript cmdlet創建的PowerShell轉錄記錄開頭更改開始時間條目的格式?如何修改PowerShell轉錄記錄中的開始時間格式?

例如:

********************** 
Windows PowerShell transcript start 
Start time: 20170424150539 
Username: ******* 
RunAs User: ****** 
*********************** 

我想這個開始時間是在格式如下:2017年4月24日15時05分39秒

+0

我需要啓動轉錄命令中的某些選項來自動更改時間格式。 因爲與命令啓動轉錄自動生成的日誌文件 使用此代碼我有這個ERREUR異常調用「ParseExact」和「3」的說法(S)啓動轉錄-path $ INSTALL_LOG -append –

回答

2

至於我可以看到有沒有選項在Start-Transcript cmdlet上直接更改日期格式。但是這裏有一個辦法做到這一點的成績單已被寫入使用PowerShell後:

$TranscriptFile = '.\PowerShell_transcript*.txt' #Modify for your file. 

$Transcript = Get-Content $TranscriptFile 

$StartTime = ($Transcript -match "Start time: " -replace "Start time: ","") 

If ($StartTime) { 
    $NewStartTime = ([datetime]::ParseExact($StartTime, "yyyyMMddHHmmss", (Get-Culture).DateTimeFormat)) 
    $NewStartTime = Get-Date($NewStartTime) -format "yyyy-MM-dd HH:mm:ss" 
    $Transcript -replace $StartTime,$NewStartTime | Out-File $TranscriptFile 
} 

說明:在該文件中,然後:

  • 通過匹配「開始時間」獲取的開始時間串從行中刪除該部分字符串。
  • 用途[datetime]::ParseExact使用日期時間令牌替換爲有效的datetime對象的字符串:YYYYMMDDHHMMSS,並根據當地的文化背景的日期。
  • 新的日期字符串爲datetime對象轉換每您指定的「YYYY-MM-DD HH:MM:SS」的偏好get-date和格式
  • 替換抄本中的字符串,並將其寫回文件。

你可以做同樣的結束時間,如果你想。

+0

:「字符串未被識別作爲有效的日期時間「。 在C:\ **************************************** + $ NewStartTime = ([日期時間] :: ParseExact($開始時間,「爲yyyymmddhhmm ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId: FormatException –

+0

看起來它抱怨說$ StartTime沒有包含一個字符串,它認爲這是一個有效的日期。你在哪個國家?這可能與本地化問題有關(不同地區的日期格式不同)。還要檢查什麼是在$開始時間做一個'在創建後寫主機「$開始時間」'。 –

+0

寫主機「$開始時間」 ====> 20170426160338 –

相關問題