无论如何,PowerShell是否可以在输出到文件之前,先输出没有ANSI控制字符(例如颜色控制,例如[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 ,不起作用)

点击查看图片

#1楼 票数:3 已采纳

您可以尝试这样的事情:

... | ForEach-Object {
    $_ -replace '\[\d+(;\d+)?m' | Add-Content 'C:\path\to\output.txt'
    $_
}

或将其包装在函数中:

function Tee-ObjectNoColor {
    [CmdletBinding()]
    Param(
        [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)]
        [string]$InputObject,

        [Parameter(Position=1, Mandatory=$true)]
        [string]$FilePath
    )

    Process {
        $InputObject -replace '\[\d+(;\d+)?m' | Add-Content $FilePath
        $InputObject
    }
}

... | Tee-ObjectNoColor -FilePath 'C:\path\to\output.txt'

  ask by Daniel.zZ translate from so

未解决问题?本站智能推荐:

3回复

Powershell详细输出链式异常

我是PowerShell的新手,并使用我们的一个自定义cmdlet解决问题。 默认情况下,cmdlet中抛出的所有异常都具有最少的信息,没有堆栈跟踪,也没有关于链接异常的信息。 有没有办法启用异常的详细输出?
1回复

使用Powershell替换多个文件和文件夹中的多个字符串

我在CSV文件中有一个字符串列表。 格式为: 并且该文件包含几百行(每个OldValue是唯一的)。 我需要处理多个文件夹和子文件夹中多个文本文件的更改。 我对文件夹,文件和文本行数的最佳猜测是-15个文件夹,每个文件夹中约有150个文本文件,每个文件夹中约有65,000行文本(每
1回复

将多个输出发送到Powershell中的同一HTML文件

试图弄清楚如何将多种服务检查转换为HTML: 我有这个脚本: 这可能吗?
1回复

Powershell循环每个文件

不完全确定我在这里做错了什么,与Powershell无关 我正在尝试使Powershell能够: 查找给定目录中的所有文件 将第一个文件复制到“主”文件 运行SQL存储过程,该存储过程引用“ Master”文件 Powershell给他们删除“主”文件
1回复

Powershell自定义cmdlet格式输出

我正在Powershell 2.0中编写我的第一个自定义CMDLet。 我遇到了我的cmdlet中未使用自定义格式temaplate xml的问题。 这是我的格式文件: 一切正常,格式成功注册了正确的类型(我使用Get-FormatData命令对其进行了检查)。 但是当执行我的命令
2回复

在PowerShell中过滤字符串

我想实现一些按名称过滤某些对象的自定义cmdlet,并且我想使用启用通配符的搜索,例如常见的cmdlet( Get-ChildItem和Get-Process )。 如何实现这种搜索? 是否有一些示例甚至某些可重用的组件? 有什么例子吗?
1回复

powershell从用户获取文件位置

嗨,我正在尝试自动化一些东西以进行测试。 我有一个sample.xml文件,我需要将其转移到某个文件夹中,这是由用户手动完成的。 所以我正在尝试通过powershell自动化。 文件位置应由用户选择,我想做 复制项-Path $ fileLocation-目的地$ dest
3回复

PowerShell模块 - 每个cmdlet的单独文件

我已经有一段时间了。 我打算为我的项目创建新的PowerShell模块。 目标是将多个自定义cmdlet打包到独立单元中,我可以通过我们的Nexus存储库(或通过其他任何方式)将其部署到其他计算机。 问题:我看到的每个地方,都看到教程将所有PowerShell函数/ cmdlet打包成