如何在PowerShell脚本日志中修改开始时间格式?

时间:2017-04-25 09:42:51

标签: powershell

如何更改使用Start-Transcript cmdlet创建的PowerShell脚本日志开头的开始时间条目的格式?

例如:

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

我希望这个开始时间格式如下:2017-04-24 15:05:39

1 个答案:

答案 0 :(得分:3)

据我所知,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
}

<强>解释

  • 通过匹配文件中的“Start Time:”然后从该行中删除该部分字符串来获取开始时间字符串。
  • 使用[datetime]::ParseExact将字符串替换为有效的日期时间对象,方法是使用日期时间标记:yyyyMMddhhmmss并根据您当地的日期文化设置。
  • 使用get-date将新日期字符串转换为日期时间对象,并根据指定的首选项“yyyy-MM-dd hh:mm:ss”格式化
  • 替换成绩单中的字符串并将其写回文件。

如果您愿意,可以为结束时间执行相同操作。