【问题标题】:Can sqlcmd be configured support ANSI escape sequences (for coloring PRINT output)sqlcmd 是否可以配置支持 ANSI 转义序列(用于着色 PRINT 输出)
【发布时间】:2017-07-15 15:20:51
【问题描述】:

我正在一个 cmd shell 中通过 sqlcmd 运行一个 .sql 脚本,并希望该脚本以彩色发出我的 PRINT 输出。

How to echo with different colors in the Windows command line 演示了 Windows 10 CMD 如何支持 ANSI 转义序列。

我猜 sqlcmd 运行它自己的 cmd shell,因为颜色没有出现。

sqlcmd -S (LocalDB)\MSSQLLocalDB
> print 'NOTE: my message'
> go
NOTE: my message  <--- Appears white on black.

在下一个打印中有 ^[。
^[ 是命令外壳呈现文字转义字符的方式。
文字转义是使用组合键 Alt-Keypad 027 从键盘输入的。

> print '^[92mNOTE: my message ^[0m'
> go
□92mNOTE: my message□0m <--- Would like this to appear bright green on black

sqlcmd shell 不支持 ANSI 转义序列。转义字符作为方框 (□) 字形输出,并且不会解释亮绿色的 92m 序列。

可以将 sqlcmd shell 配置为支持 ANSI 转义序列吗?

我使用的是 Windows 10 和 SQLExpress 2016。

>sqlcmd -?
Microsoft (R) SQL Server Command Line Tool
Version 11.0.2100.60 NT x64
Copyright (c) 2012 Microsoft. All rights reserved.

【问题讨论】:

    标签: sqlcmd


    【解决方案1】:

    仔细阅读“Miscellaneous Commands”下的 [sqlcmd 实用程序文档][1] 会显示该功能

    • [:] !! 执行操作系统命令。

    因此可以使用 ANSI 转义序列发出 ECHO 命令以获取颜色

    :!!ECHO <alt-027>[1;32mThis is bright green.<alt-027>[0m This is not.
    

    【讨论】:

      猜你喜欢
      • 2014-09-26
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2011-06-18
      • 1970-01-01
      • 2014-09-25
      相关资源
      最近更新 更多