问题
我正在尝试将 STDERR
输出捕获到日志文件中,但是我遇到了一些严重的不一致问题,这使得我的任务更加困难。
首先,我的 ErrorActionPreference
设置为 'Stop',这可能是我遭受的问题的一部分。
其次,我已经尝试了以下代码中每个 git 命令的两个变体:
变体 01
& git add $path2File 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
& git commit -m "Some logical update message" 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
& git status 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
& git push 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
Variant 02
& git add $path2File 2>&1 >> "$LogPath\$tmpLogName" -Append
& git commit -m "Some Logical update message" 2>&1 >> "$LogPath\$tmpLogName" -Append
& git status 2>&1 >> "$LogPath\$tmpLogName" -Append
& git push 2>&1 >> "$LogPath\$tmpLogName" -Append
有几个其他变体,其中我混淆了哪个命令使用哪个变体,具体取决于我遇到的常见问题。
我遇到的主要问题有:
1)每当遇到
STDERR
输出时,它被视为终止错误,无论消息如何。2)由于许多原因,我的尝试创建自定义
Try/Catch
语句都失败了。如果成功执行STDERR
消息,则退出代码并不总是相同的。由于消息并不总是使用相同或类似的消息,因此无法对除警告以外的任何内容使用纯文本匹配。注:我想在没有绝对必要更改
ErrorActionPreference
的情况下完成此操作。问题
有人知道如何处理记录
STDERR
消息的git命令,以便始终记录响应,而不会引发终止错误,除非是真正的关键错误吗?