簡體   English   中英

在Windows上突出顯示或強調輸出到stdout

[英]Highlighting or underlining output to stdout on Windows

背景

我需要將Perl腳本從Linux移植到Windows。 腳本輸出到stdout並突出顯示並根據需要為特定單詞加下划線。 在Linux中,這可以通過將系統調用包含在tput

tput smsotput rmso用於突出顯示

tput smultput rmul強調

Windows上是否有可以輕松實現此功能的系統調用? 如果沒有,有沒有人知道可以實現類似結果的解決方法?

如果您使用Perl輸出內容,至少Win32 :: Console也可以在Windows上進行下划線(10以后):

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序列轉換為適當的控制台調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM