sqlcmd可以配置支持ANSI转义序列(用于着色PRINT输出)

时间:2017-07-15 15:20:51

标签: sqlcmd

我在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.

在下一个印刷品中有^ [。
^ [是命令shell如何呈现文字转义字符 使用组合键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.

1 个答案:

答案 0 :(得分:0)

在“杂项命令”下仔细阅读[sqlcmd实用程序文档] [1]会显示该功能

  • [:] !!&lt;命令&GT;执行操作系统命令。

因此,可以使用ANSI转义序列发出ECHO命令以获得着色

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