gpt4 book ai didi

Powershell 管道全部记录

转载 作者:行者123 更新时间:2023-12-02 22:39:48 25 4
gpt4 key购买 nike

我是 powershell 的新手,我希望将所有行通过管道传输到一个输出文件以记录时间,但我宁愿不将所有 cmdlet 显式通过管道传输到日志文件以避免视觉困惑并使代码易于扩展。

我不确定现有的方法是否能满足我的要求,我只是无法识别它,或者除了任何指示或帮助之外,我们将不胜感激。

最佳答案

如果您想捕获 PowerShell session 中生成的所有输出(包括其他流,例如详细信息或错误消息),您可以在脚本开头使用 Start-TranscriptStop-Transcript 最后。

如果您想输出特定的日志条目,请考虑使用 Write-Log 函数,如此处的答案之一所述:Create Log File in Powershell

或者这是一个简单的开始版本:

function Write-Log {
Param(
$Message,
$Path = "$env:USERPROFILE\log.txt"
)

function TS {Get-Date -Format 'hh:mm:ss'}
"[$(TS)]$Message" | Tee-Object -FilePath $Path -Append | Write-Verbose
}

Write-Log 'Some message'

这会在消息的开头添加一个时间戳,并将其定向到 Verbose 输出流以及通过 Tee-Object 的文件。如果您通过 $VerbosePreference(或通过在脚本中支持 -Verbose)启用它们,您就可以看到 Verbose 消息。

或者,如果您想要重定向不是其他消息流的脚本的所有输出(例如,只是发送到标准管道的内容),您可以保存脚本,从 PowerShell 中运行它,然后将其输出通过管道传输到另一个命令,例如 Out-File,例如:

.\yourscript.ps1 | Out-File output.txt

关于Powershell 管道全部记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44768223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com