powershell - 从 Tee-Object Powershell 中删除颜色
问题描述
Start-Process "powershell" -ArgumentList "-noexit -executionpolicy bypass -windowstyle minimized -command `"&{Invoke-Expression `'.\$exe $Arguments`' | Tee-Object `'$Logs`'}`""
此命令有效,但是我正在运行的 .exe 具有彩色文本,例如:
[0m
这使得解析生成的 .log 文件变得困难。
有没有办法将 Tee-Object 保存到文件中,并删除颜色输出?
此外,有没有办法做到这一点,同时保持控制台上的颜色,因为控制台显示相同的字符(无颜色)。
我一直在搜索,重写了一百种不同的方法,我似乎找不到删除它的方法。
另外,如果还有更简洁的方式来编写启动invoke-expression | Tee-Object
它似乎是唯一对我有用的。
解决方案
function Tee-ObjectNoColor {
[CmdletBinding()]
Param(
[Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)]
[string]$InputObject,
[Parameter(Position=1, Mandatory=$true)]
[string]$FilePath
)
process{
$InputObject = $InputObject -replace '\\[\d+(;\d+)?m'
$InputObject | Out-File $FilePath -Append
$InputObject | Out-Host
}
}
我就是这样做的。它删除了所有颜色符号,在屏幕和日志上都保持干净。
推荐阅读
- scala - 如何在 Intellij 的 scala 应用程序上修复“错误:无法找到或加载主类”?
- java - 回收站视图未显示片段中的项目
- ios - 在 UITableView 中保持时间戳标签的更新
- python - 在 Keras 中将输入名称转换为数组
- java - 从 gradle 生成构建和运行时依赖项到 pom.xml
- reactjs - 使用 NextJS 托管 Apple 验证文件
- python - 如何检查 CSV 文件是否未被其他进程使用?
- arduino - 如何使用 lorawan 设置 seeeduino?
- python - python中的Kruskels MST算法似乎不太正确
- php - 如何使用 Laravel 批量插入避免 504 网关超时?