zoukankan      html  css  js  c++  java
  • windows、linux下指定文字变色问题。

    哎!!!万恶的甲方,悲催的程序员。

      今天又要修改web服务升级程序,并且要将升级程序还原到数据库升级和业务升级互不影响的地步。改程序很快,但是遇到个认真细心的测试就悲剧了。

    她提出了当数据库升级失败后,需要将数据库升级失败的提示写的显眼点好让他们发现。哎!那就开是翻某度找找有没合适的,答案是肯定有的,

    找到的一个使用第三方jar包jansi的确实是可以达到输出字体颜色的目的,但是需要引入第三包无形中就增加了升级包大小。继续找的过程中找到了bat实现字体隔行黄色的文章。

    拿文章里面的示例到本地可以跑但是里面注释基本没有。所以强迫症犯了就开始理解里面的具体内容了。

    1:windows下(win10测试)

      windows输出带有颜色的字体,说白了就是使用findstr 命令中/a 属性完成的。入正题在dos下输入color -help 弹出下面的帮助

           

    找到自己需要的字体颜色就可以写代码了,自己写的代码如下(退格符很重要不然会输出:号 看着就不爽)

    @echo off
    rem for循环中生成退格符并赋值给DEL变量
    for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
      set "DEL=%%a" 
    )
    rem 调用底下声明的ColorChange方法 0C 红色字体 红色字体为参数
    call :ColorChange 0C 红色字体
    
    rem echo. 相当于换行
    echo.
    call :ColorChange 0E 黄色字体
    echo.
    echo this is test color change demo
    pause
    
    
    :ColorChange
    
    rem 生成以第二个参数为名称的文件 并将将退格符写到文件中 
    echo %DEL% > %2
    
    rem 使用findstr语法 查找第二个参数的文件,由于文件中只有退格符所以就输出了第二个文件文件名。
    rem (ps 如果文件中有内容则输出第二个参数的名称加:号数据文件内容,如果文件是空的则输出文件名:。所以才需要上面的退格符将:号去除)
    findstr /a:%1 .* %2 nul
    
    rem 字体颜色出来了就删除这临时文件了
    del %2 >nul

    下面是测试效果:

    linux系统就比较简单了,使用echo -e 命令就可以了,某度上教程一大堆就只写个简单的示例。封装个红色字体的方法 往里面传数据就可以了(ps:有个比较坑的地方就是使用SecureCRT工具,

    由于是版本比较老5.1.3,然后出不来字体颜色,则就请使用闪烁来进行提示吧)

    #!/bin/bash
    
    function bred(){ 
        echo -e "33[31m $1 33[0m"
    }
    
    bred "红色"
  • 相关阅读:
    安装lnmp 时如何修改数据库数据存储地址及默认访问地址
    ubuntu 设置root用户密码并实现root用户登录
    解决ubuntu 远程连接问题
    linux 搭建FTP服务器
    PHP 根据ip获取对应的实际地址
    如何发布自己的composer包
    使用composer安装composer包报Your requirements could not be resolved to an installable set of packages
    laravel 框架配置404等异常页面
    使用Xshell登录linux服务器报WARNING! The remote SSH server rejected X11 forwarding request
    IoTSharp 已支持国产松果时序数据库PinusDB
  • 原文地址:https://www.cnblogs.com/zhangjiangbin/p/13700901.html
Copyright © 2011-2022 走看看