如何在PowerShell中向Start-Transcript插入其他注释(字符串?)

时间:2013-10-08 22:54:26

标签: windows sharepoint powershell logging

(PowerShell初学者请耐心等待......) 我发现PowerShell中的Start-Transcript命令非常有用,可以捕获写入主机和写入输出输出,这些输出在同时显示在控制台上时会按原样写入日志。我正在尝试向日志文件添加上下文注释(为日志添加一些解释,以便人们阅读日志可以更好地理解上下文)但我希望找到一个不涉及向控制台吐出任何内容的解决方案all(写主机/输出)。

我的目标是1)在日志中添加比默认日志文件创建的更直观的日期/时间字符串,以及2)添加更多信息以提供日志的上下文

1 个答案:

答案 0 :(得分:0)

您可以先创建成绩单文件,将所有上下文信息添加到其中,然后调用 Start-Transcript -Append 并指定您为成绩单初始化的文件。你可以使用这样的函数(根据你的要求调整):

function New-Transcript {
  param(
    [parameter(Mandatory=$true)] [string]$Path
  )
  Get-Date -Format 'your preferred format' > $Path
  Write-Output 'Contextual message #1' > -Append $Path
  Write-Output "Contextual message #2 with $variable" > -Append $Path
  Start-Transcript $Path -Append
}

然后你会开始这样的成绩单:

New-Transcript <TranscriptFilePath>

或者如果您愿意,可以让它为成绩单指定一些默认名称,例如

param(
  [string]$Path = "PowerShell_transcript_$(Get-Date -format 'yyyy-MM-dd_HH-mm-ss')"
)

确保在第一个之后使用 -Append 开关与每个> Out-File 的简写),或者它将覆盖每个文件时间。

这只是一个框架。您可能希望进一步开发 New-Transcript 功能,例如让它检查指定的路径是否已经存在,给它自己的 -Append 开关以确定是否将添加或覆盖现有的脚本文件,添加控制前置内容消息的参数等。

请注意,默认的PowerShell脚本标头将遵循您的自定义标头。我不相信有办法压制它们。