问题描述
我是批处理脚本的新手,我正在尝试创建一些可以使用 Tee-Object 查看终端输出和日志的东西。
这是工作代码:
powershell %* ^| tee-object -Append -FilePath "something.log"
但是,我希望在附加到日志文件之前添加时间戳,但找不到任何此类脚本。
这是 shell 脚本中等效的工作代码:
$* | while read line; do echo $line; echo "$(date) $line" >> something.log; done
解决方法
如果内容是文本行,可以添加时间戳:
%* ^| ForEach-Object { $(Get-Date).ToString() + ' ' + $_ } ^| Tee-Object ...
Tee-Object
与 UNIX/Linux 上的 tee
一样,旨在将相同的流发送到两个地方。不使用 Tee-Object
,可以写入两个不同的流。
if (Test-Path -Path '.\teetime.log') { Remove-Item -Path '.\teetime.log' }
@('now','is','the','time') |
ForEach-Object {
$(Get-Date).ToString() + ' ' + $_ |
Out-File -FilePath '.\teetime.log' -Encoding ascii -Append
Write-Host $_
}