可以配置 sqlcmd 支持 ANSI 转义序列(用于着色 PRINT 输出)
Can sqlcmd be configured support ANSI escape sequences (for coloring PRINT output)
我是 运行 .sql 脚本,通过 sqlcmd in a cmd shell 并且希望脚本以彩色发出我的 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.
仔细阅读 "Miscellaneous Commands" 下的 [sqlcmd 实用程序文档][1] 显示了功能
- [:] !!
执行操作系统命令。
因此可以使用 ANSI 转义序列发出 ECHO 命令以获得着色
:!!ECHO <alt-027>[1;32mThis is bright green.<alt-027>[0m This is not.
我是 运行 .sql 脚本,通过 sqlcmd in a cmd shell 并且希望脚本以彩色发出我的 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.
仔细阅读 "Miscellaneous Commands" 下的 [sqlcmd 实用程序文档][1] 显示了功能
- [:] !!
执行操作系统命令。
因此可以使用 ANSI 转义序列发出 ECHO 命令以获得着色
:!!ECHO <alt-027>[1;32mThis is bright green.<alt-027>[0m This is not.