我已經開始利用批處理腳本ANSI顏色代碼爲Windows 10今天,我發現突然顏色停止工作,而且我也被曝for
命令使用嵌入式MSYS命令。例如:的Cmd.exe批處理腳本雙色輸出用FOR/F「MSYS」命令
@echo off
echo ^[[92mThis works.^[[0m
for %%f in (x) do @echo ^[[93mThis also works.^[[0m
for /l %%f in (1,1,1) do @echo ^[[94mThis too works.^[[0m
for /f "tokens=*" %%f in ('date /t') do @echo ^[[95mThis one works.^[[0m
for /f "tokens=*" %%f in ('sha1sum.exe ^< NUL') do @echo ^[[91mThis one DOES NOT work.^[[0m
echo ^[[92mThis works.^[[0m
(注意:如果您看到 「^ [」 必須是一個單一的ESC字符,ASCII碼27,而不是如,Vim的插入模式類型<C-V><ESC>
)
在我的情況,sha1sum.exe是指Git for Windows的C:\Program Files\Git\usr\bin\sha1sum.exe
。我們都知道批處理腳本/ cmd.exe有他們自己的巫術,但我想不出一個解釋。是否在命令行持續時間內切換顏色解釋?如果是的話,是否會有辦法強制它恢復?
附加:
值得一提的是它似乎影響了整個「命令行」,如果你已經使用括號包裹在括號中的整個位似乎受到影響嵌套如果和維權的意義。
http://stackoverflow.com/questions/16755142/how-to-make-win32-console-recognize-ansi-vt100-escape-sequences 我不知道,ANSI顏色工作過在Windows 10 – abelenky
我敢肯定,這是超級簡陋,像FINDSTR聲稱事情是正則表達式。 – SomethingDark