【发布时间】:2019-11-19 21:01:16
【问题描述】:
我正在编写一个将执行一些 git 操作的脚本,我想使用 Start-Transcript 来监控它。然而,成绩单缺少大部分 git 输出。
我尝试将git 输出通过管道传输到Out-Host 和Out-Default,但都不起作用。
这是我的代码...
$DateTime = Get-Date -Format "yyyyMMdd_HHmmss"
$TranscriptName = "PSTranscript_$DateTime"
Start-Transcript -Path ".\$TranscriptName.txt"
git --bare clone <GIT_REPO_URL> repo | Out-Default
Stop-Transcript
这是我的控制台输出...
Transcript started, output file is .\PSTranscript_20191119_155424.txt
Cloning into 'repo'...
remote: Counting objects: 58975, done.
remote: Compressing objects: 100% (21457/21457), done.
remote: Total 58975 (delta 43348), reused 51727 (delta 37145)
Receiving objects: 100% (58975/58975), 70.46 MiB | 3.95 MiB/s, done.
Resolving deltas: 100% (43348/43348), done.
Checking out files: 100% (3878/3878), done.
Transcript stopped, output file is .\PSTranscript_20191119_155424.txt
这是记录中捕获的内容,请注意,git 的某些输出丢失了
**********************
Windows PowerShell transcript start
Start time: 20191119155424
Username:
RunAs User:
Configuration Name:
Machine:
Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Process ID: 20644
PSVersion: 5.1.17134.858
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17134.858
BuildVersion: 10.0.17134.858
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Transcript started, output file is .\PSTranscript_20191119_155424.txt
**********************
Windows PowerShell transcript end
End time: 20191119155457
**********************
【问题讨论】:
-
stackoverflow.com/a/47367768/6309 可能会有所帮助。
-
Start-Transcript应该捕获所有内容,而不管输出流如何。但是,似乎将git命令输出传送到Out-Default会导致输出未记录在脚本中。] -
我已经修改了我的答案,以反映以下结论:
Out-Default应该永远直接从用户代码中调用,基于 this discussion on GitHub。
标签: git powershell