通过 powershell 在 jenkins 中使用 AnsiColor

2024-01-11

关于如何使用 powershell 为 Jenkins 上的输出着色有什么想法吗?我已经在 J​​enkins 上安装了 AnsiColor 插件,并且已将作业设置为使用 AnsiColor。唯一的问题是如何让我的powershell在Jenkins上输出颜色。


嗯,我以前从未使用过它,所以我想我会尝试一下。基本上,您只需按字面意思放置一个转义字符(ASCII 27),后跟一个左括号[然后是代码,如本页所述 http://bluesock.org/~willg/dev/ansi.html,直接进入字符串。

为了使这更容易,我编写了一个格式化字符串的函数:

function Format-AnsiColor {
[CmdletBinding()]
[OutputType([String])]
param(
    [Parameter(
        Mandatory = $true,
        ValueFromPipeline = $true
    )]
    [AllowEmptyString()]
    [String]
    $Message ,

    [Parameter()]
    [ValidateSet(
         'normal display'
        ,'bold'
        ,'underline (mono only)'
        ,'blink on'
        ,'reverse video on'
        ,'nondisplayed (invisible)'
    )]
    [Alias('attribute')]
    [String]
    $Style ,

    [Parameter()]
    [ValidateSet(
         'black'
        ,'red'
        ,'green'
        ,'yellow'
        ,'blue'
        ,'magenta'
        ,'cyan'
        ,'white'
    )]
    [Alias('fg')]
    [String]
    $ForegroundColor ,

    [Parameter()]
    [ValidateSet(
         'black'
        ,'red'
        ,'green'
        ,'yellow'
        ,'blue'
        ,'magenta'
        ,'cyan'
        ,'white'
    )]
    [Alias('bg')]
    [String]
    $BackgroundColor
)

    Begin {
        $e = [char]27

        $attrib = @{
            'normal display' = 0
            'bold' = 1
            'underline (mono only)' = 4
            'blink on' = 5
            'reverse video on' = 7
            'nondisplayed (invisible)' = 8
        }

        $fore = @{
            black = 30
            red = 31
            green = 32
            yellow = 33
            blue = 34
            magenta = 35
            cyan = 36
            white = 37
        }

        $back = @{
            black = 40
            red = 41
            green = 42
            yellow = 43
            blue = 44
            magenta = 45
            cyan = 46
            white = 47
        }
    }

    Process {
        $formats = @()
        if ($Style) {
            $formats += $attrib[$Style]
        }
        if ($ForegroundColor) {
            $formats += $fore[$ForegroundColor]
        }
        if ($BackgroundColor) {
            $formats += $back[$BackgroundColor]
        }
        if ($formats) {
            $formatter = "$e[$($formats -join ';')m"
        }

       "$formatter$_"
    }
}

Usage:

Format-AnsiColor -Message 'Hey there' -Style Bold -ForegroundColor Red

'Hello' | Format-AnsiColor -BackgroundColor Green

'One','Two','Three' | Format-AnsiColor -Style 'normal display' -ForegroundColor White -BackgroundColor Black

请记住,如果您不再需要它,则必须关闭该序列(我的意思是将样式和颜色设置回之前的值)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 powershell 在 jenkins 中使用 AnsiColor 的相关文章

  • 使用 Powershell 命令进行文件计数

    如何使用以下命令计算特定文件夹 以及所有子文件夹 中的所有文件电源外壳命令 Get ChildItem 和 Get ChildItem
  • 无法使用 jenkins 运行 python 脚本

    我正在尝试运行 Python 作业 我创建了以下文件夹 C Users herod jenkins ws workspace window testing 并向其中添加脚本 testing py 该脚本非常简单 if name main p
  • Jenkins 通过选择 Nexus 工件的版本(所有 GAV)进行参数化构建

    是否有 Jenkins 插件可以对我的 Nexus 存储库进行组工件版本 GAV 搜索并列出结果 我希望结果可以在参数化构建中作为选择 下拉列表 提供 我添加了一个常规脚本动态选择参数 https wiki jenkins ci org d
  • 如何在 Jenkins 上配置测试结果分析器插件

    我在 Jenkins 中安装了测试结果分析器插件 但收到消息 No build data retrieved You may need to select a Module 安装插件后 我的下一步是什么让它正常工作 是否需要启用 Publi
  • Jenkins - 通过 SSH 插件发布:如何复制目录

    我正在尝试使用Jenkins 通过 SSH 发布 https wiki jenkins ci org display JENKINS Publish Over SSH Plugin PublishOverSSHPlugin Configur
  • 将子进程的输出重定向到父进程 - Powershell

    我有 powershell 进程 并且我正在调用 Start Process 或 System Diagnostic Process 以作为不同用户启动子进程 以获取其他用户环境变量 我尝试使用重定向输出 但它不起作用 下面是代码 proc
  • 为什么使用 ArrayList 打印数字?

    输入数据 00 00 Pedro Del Mar Beatsole Pianophoria Original Mix https www beatport com track pianophoria original mix 5970941
  • 以非 root 用户身份从 Docker Ubuntu 容器内部调用 Mac 主机上的 Docker 时出现权限被拒绝错误

    我正在尝试从正在运行的 jenkins docker 容器内运行 Docker for Mac 17 06 0 ce mac17 的 OSX 主机上调用 docker 詹金斯 最新 https hub docker com jenkins
  • Powershell 将字符串转换为 System.Net.IPAddress

    我是 powershell 新手 我正在尝试自动创建 DHCP 预留 到目前为止 我可以像这样获取 IP 地址 IP GEt VM ComputerName HVCOMPUTERNAME VMName HVNAME Get VMNetwor
  • 基于团体成员资格的额外输出

    我希望你们都度过愉快的一天 如果这是一个糟糕的问题尝试 我提前道歉 我不太擅长这个 介绍 首先 我想介绍一下我实际正在创作的内容 我为 MSP 工作 我的任务是创建一个供我们的一位客户使用的用户管理 Powershell 脚本 以便我们可以
  • 如何在 Jenkinsfile 中使用“findFiles”?

    我的 Jenkinsfile 包含这个阶段 stage Deploy steps script def rpmFiles findFiles glob rpm def rpmFile rpmFiles 0 我想用它来将工件部署到服务器 如何
  • 是否可以通过用户租户上的 ARM 模板在 Azure 上自动注册应用程序?

    我正在尝试通过 ARM 模板将解决方案部署为托管应用程序 为了使部署正常工作 我需要注册应用程序的客户端 ID 和客户端密钥以及租户 ID 在我之前的范围中 我假设用户将注册一个现有的应用程序 但现在我想为用户自动化应用程序注册过程 并能够
  • 动态创建的 Jenkins 管道脚本

    我正在使用詹金斯管道项目 在脚本中我想写parallel以动态方式阻止 因为节点数量可以改变 例如 从此 parallel node1 node stage1 stage2 node2 node stage1 stage2 像这样的事情 f
  • 如何使用 7zip powershell 包含文件和文件夹

    我试图让我的 powershell 脚本压缩一些文件和文件夹 目前 我可以使我的脚本要么压缩所有文件 不包含文件夹 要么压缩包含文件夹但到错误路径的所有文件 一个例子是 如果我有一个名为 wordpress 的文件夹 其中包含文件和一些子文
  • 元组/数组列表对

    我本质上是想创建一个配对列表 事实证明这是非常困难的 请注意 在任何人提到哈希表之前 都会有我不关心的重复项 例如 如果我这样做 b dog cat I get Name Value dog cat 这很好 但是 我无法添加类似的内容 b
  • 在 Jenkins 服务器上找不到 tcpSlaveAgentListener

    我正在尝试从从机连接到 Jenkins 主实例 从连接的角度来看 一切看起来都很好 我可以在 Jenkins 的 配置全局安全性 中设置选定的 JNLP 代理的 TCP 端口 从那里启动从节点 curl http myjenkinsurl
  • 如何使用 Jenkinsfile 备份 Jenkins

    如何在不使用插件的情况下使用 Jenkinsfile 进行 Jenkins 作业配置备份 要备份的东西 系统配置 詹金斯 职位配置 我们对插件备份解决方案并不满意 因此我们在 master 上运行一个自由式 shell 步骤作业 通常是不行
  • 您能否从 Jenkins 管道内部识别这是否是新分支的首次运行?

    是否可以从管道本身内部查看管道作业是否是新发现的分支的第一次运行 如果您可以获得一个作业的所有运行的列表 也许您可 以查看之前的运行是否为 0 次 从而知道这是第一次运行 Use env BUILD NUMBER env BUILD NUM
  • 使用Powershell的按位运算符

    我正在寻找如何解决以下场景的示例 想象一下我的打印机具有以下 状态 属性0 离线2 纸盘已空4 墨粉耗尽8 卡纸 当我查询状态时 它返回值 12 我可以明显看到这意味着打印机碳粉耗尽且卡纸 但我如何使用 Powershell 解决这个问题
  • Powershell pscustomobject 格式-表新行而不是一行

    我有一个非常大的员工 JSON 响应 我正在尝试将其转换为表格式 导出为 CSV 并最终插入到 SQL Server 中 我能够确定如何从 json 文件中获取所有变量 但是现在我将所有值插入到每列的一行中 而不是为每个员工插入一个新行 另

随机推荐