背景
我需要将一个 Perl 脚本从 Linux 移植到 Windows。该脚本输出到标准输出并高亮和下划线特定的单词。在 Linux 中,可以通过使用系统调用 tput
来实现:
tput smso
和 tput rmso
用于高亮
tput smul
和 tput rmul
用于下划线
问题
在 Windows 上是否有任何系统调用可以轻松实现此功能?如果没有,是否有人知道可以实现类似结果的解决方法?
我需要将一个 Perl 脚本从 Linux 移植到 Windows。该脚本输出到标准输出并高亮和下划线特定的单词。在 Linux 中,可以通过使用系统调用 tput
来实现:
tput smso
和 tput rmso
用于高亮
tput smul
和 tput rmul
用于下划线
在 Windows 上是否有任何系统调用可以轻松实现此功能?如果没有,是否有人知道可以实现类似结果的解决方法?
my $win32_console Win32::Console->new();
# Rendering is flakey under Windows 10
my $attr = 0x8000 # COMMON_LVB_UNDERSCORE, Windows 10 onwards
| 0x4000 # COMMON_LVB_REVERSE_VIDEO, Windows 10 onwards
;
$console->Attr($attr);
$console->Write("Hello World");
如果只是需要一个非常快速的移植修复方案,Win32::Console::ANSI会“神奇地”将输出中的所有ANSI序列转换为适当的控制台调用。
Win32::Console::ANSI
正是我所寻找的。 - robasia