PowerShell有没有输出没有ANSI控制字符的文件,比如颜色控制,e.x。在输出到文件之前,[1;xxm
或[xm]
[1;35mStarting selenium server... [0m[1;35mstarted - PID: [0m 22860
[0;36m[Signin Test] Test Suite[0m
[0;35m================================[0m
Running: [0;32mstep 1 - launch the browser[0m
[1;35m[40mINFO[0m [1;36mRequest: POST /wd/hub/session[0m
输出在PowerShell终端中正确显示颜色,(我使用chcp
,无法正常工作)
答案 0 :(得分:3)
您可以尝试这样的事情:
"CarType": "mercedes",
"carID": "merc123"
或将其包装在函数中:
{
cars: [
{
"CarType": "BMW",
"carID": "bmw123"
},
{
"CarType": "mercedes",
"carID": "merc123"
},
{
"CarType": "volvo",
"carID": "vol123r"
},
{
"CarType": "ford",
"carID": "ford123"
}
]
};
答案 1 :(得分:0)
对于Windows系统,可以使用Powershell 3.0中提供的 Replace 命令。powershell使用正则表达式来帮助替换ANSI颜色代码。 (如果是UNIX,则可以使用 sed 命令)
以下是用于删除ANSI颜色代码的标准正则表达式(可在Linux和Windows中均使用)
'\x1b\[[0-9;]*m'
\x1b
(或\x1B
)是转义特殊字符sed
不支持替代项\e
和\033
)\[
是转义序列的第二个字符[0-9;]*
是正则表达式的颜色值m
是转义序列的最后一个字符我在这里将docker的日志输出到一个日志文件中,其他命令也可以这样做
docker logs container | ForEach-Object { $_ -replace '\x1b\[[0-9;]*m','' }| Out-File -FilePath .\docker-logs.log
上述命令将从输出流中删除特殊字符,例如[1;35m
,[0m[1;3
和^[[37mABC
。