【问题标题】:How to insert additional comments (string?) to Start-Transcript in PowerShell如何在 PowerShell 中向 Start-Transcript 插入附加注释(字符串?)
【发布时间】:2013-10-21 11:07:09
【问题描述】:

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

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

【问题讨论】:

    标签: windows sharepoint powershell logging


    【解决方案1】:

    您可以先创建脚本文件,将所有上下文信息添加到其中,然后调用 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')"
    )
    

    确保在每个 &gt;Out-File 的简写)之后使用 -Append 开关,否则每次都会覆盖文件。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-25
      • 2023-03-13
      • 2011-02-04
      • 2021-08-01
      • 2017-10-17
      • 1970-01-01
      • 2018-06-12
      • 2017-04-03
      相关资源
      最近更新 更多