重定向到Powershell核心中的文件时,写错误会给出奇怪的字符

沿加尔加和拉德

您好,我在Powershell 7.1和7.2预览版中有以下测试代码。

Write-Output "Lalala" 1> C:\Temp\test.txt 
Write-Error "This is a test" 2>&1 >> C:\Temp\test.txt 
Write-Warning "Test Testt" 3>&1 >> C:\Temp\test.txt 
Write-Information "Information Information" 6>&1 >> C:\Temp\test.txt 

这将在文件中产生以下输出。写错误输出显示奇怪的字符。

拉拉拉

[91mWrite-Error:[91mThis is a test [0m

测试一下

资讯资讯

当我在Powershell 5中执行相同的操作时,结果与我期望的一样:

拉拉拉

C:\ Users \ MoonChild \ Documents \ huh.ps1:这是一个测试+ CategoryInfo:未指定:(:) [Write-Error],WriteErrorException + FullyQualifiedErrorId:Microsoft.PowerShell.Commands.WriteErrorException,huh.ps1

测试一下

资讯资讯

Powershell内核发生了什么事情导致此现象,并且有解决方法?

zett42

这种现象似乎是由新的错误查看模式引起的,可以通过$ErrorView首选项变量进行更改

的默认值$ErrorViewConciseView将ANSI转义码输出到文件(这是您所看到的,▯[91m并且▯[0m-矩形是不可打印的ESC字符)。转义码仅对控制台输出有意义,在控制台输出中它们使输出着色。当重定向到文件时,它们没有多大意义,所以对我来说,这似乎是一个错误。

要获得PS 5行为,请设置$ErrorView = 'NormalView'

$ErrorView = 'NormalView'
Write-Error "This is a test" 2>&1 >> C:\Temp\test.txt

输出:

Write-Error“这是一个测试” 2>&1> C:\ Temp \ test.txt:这是一个测试
+ CategoryInfo:未指定:(:) [Write-Error],WriteErrorException 
+ FullyQualifiedErrorId:Microsoft.PowerShell.Commands。 WriteErrorException

相关问题: 在PowerShell中的stderr上捕获文字字符串

GitHub问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重定向到.net核心中的查询字符串url时,会话为null

当模糊使用IEnumerable时,Linq函数会给出奇怪的编译错误-可能的解决方法?

MySQL给出奇怪的错误

添加列表并重定向到另一个视图时,Asp.net核心TempData给出500错误

Firestore @PropertyName 注释给出奇怪的错误?

为什么将重定向重定向到文件时发生段错误?

将输出重定向到文件时的奇怪 python 行为(使用 os.system 时)

将Node.js程序的输出重定向到文件时编码错误(Windows 10 Powershell可能存在问题)

htaccess:当参数包含空格时,将非www重定向到www会导致奇怪的字符

强制SSL时ASP.NET核心中的无限重定向循环

SML:在将项目追加到列表时,类型推断给出奇怪的错误

在Powershell中重定向到$ null奇怪的行为

批处理错误重定向到文件

HTTP到https给出重定向循环错误

Angular 重定向到奇怪的 url 字符串

Powershell-替换给出奇怪的行为

为什么这个简单的 lambda 函数会给出奇怪的输出?

为什么 MATLAB 中的日期时间会给出奇怪的结果?

为什么在字符串上+ +给出奇怪的结果

char +字符串给出奇怪的结果

下标(“ []”)运算符给出奇怪的错误

npm运行ionic:build --prod给出奇怪的错误

通配符先决条件给出奇怪的错误消息

从 SELECT 插入临时表给出奇怪的错误

从Excel工作表追加给出奇怪的错误

通过PowerShell启动过程启动时,特定的.exe会给出错误消息[powershell]

如何在将输出重定向到文件时标记匹配的GREP字符串

顶部输出的grep在重定向到文件时产生有趣的字符

当输出重定向到文件时,printf()和system()的结果顺序错误