您可以先创建脚本文件,将所有上下文信息添加到其中,然后调用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 脚本标头将遵循您的自定义标头。我不相信有办法压制他们。