我在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.
答案 0 :(得分:0)
在“杂项命令”下仔细阅读[sqlcmd实用程序文档] [1]会显示该功能
因此,可以使用ANSI转义序列发出ECHO命令以获得着色
:!!ECHO <alt-027>[1;32mThis is bright green.<alt-027>[0m This is not.