在PowerShell中将所有输出重定向到文件

4
我想要将所有输出重定向到一个文件中,就像这样:
Write-Error 'bla' *>>  '\\SERVER\s$\Test\test.log'

问题在于当我想使用LiteralPath时,它会尝试将路径解析为通配符路径,从而导致失败。因此,以下代码会失败:
Write-Error 'bla' *>>  '\\SERVER\s$\Test\test[0].log'

尝试使用Write-Error 'bla' | Out-File -LiteralPath时,它不会将错误写入文件,而只会输出到控制台。
在文件名中使用特殊字符时,有没有办法使所有输出都写入文件?
2个回答

8

您可以使用 Start-TranscriptStop-Transcript 命令来记录操作过程:

Start-Transcript -Path '\\SERVER\s$\Test\test[0].log'
# Your code
Stop-Transcript

这并不是我想要“修复”它的方式。是否有另一种通过管道或重定向输出的方法? - DarkLite1
1
虽然这不是我想要的解决方案,但我通过一般搜索找到了这个完美的答案。 - sfuqua

6
我想我找到了它:
Write-Error 'bla' 2>&1 | Out-File -LiteralPath '\\SERVER\s$\Test\test[0].log' -Append

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接