0

(PowerShell の初心者なのでご容赦ください...) PowerShell の Start-Transcript コマンドは、コンソールに同時に表示されると同時に、ログにそのまま書き込まれる write-host および write-output の出力をキャプチャするのに非常に便利です。ログ ファイルにコンテキスト コメントを追加しようとしています (ログに説明を追加して、ログを読んでいる人がコンテキストをよりよく理解できるようにするため)。 all (write-host/output が行う)。

私の目的は、1) デフォルトのログ ファイルが作成するよりも直感的な日付/時刻文字列をログに追加すること、および 2) ログのコンテキストを提供するための情報を追加することです。

4

1 に答える 1

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')"
)

-Appendスイッチは、最初の後に each >( Out-File の省略形) と共に使用するようにしてください。そうしないと、毎回ファイルが上書きされます。

これは単なるフレームワークです。おそらく、 New-Transcript関数をさらに開発する必要があります。たとえば、指定されたパスが既に存在するかどうかを確認し、独自の-Appendスイッチを指定して、既存のトランスクリプト ファイルを追加または上書きするかどうかを決定し、パラメータを追加します。どのコンテキスト メッセージを先頭に追加するかなどを制御します。

デフォルトの PowerShell トランスクリプト ヘッダーはカスタム ヘッダーに従うことに注意してください。それらを抑える方法はないと思います。

于 2013-10-09T00:11:59.360 に答える