从 stackoverflow 抄了一段用来使得特定行输出不一样颜色的 bat 脚本,但是用来输出中文文本会乱码
用了 chcp 65001 也不行
我的实验脚本如下
@
echo off
SETLOCAL EnableDelayedExpansion
chcp 65001 >nul
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
set "text=什么"
echo %text%
call :ColorText 0c "%text%"
call :ColorText 0c "shen me"
pause
:ColorText
echo off
echo %DEL% > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
echo 能正常显示“什么”,call :ColorText 0c "%text%"就不行
颜色代码来自前两个最高分回答
https://stackoverflow.com/questions/21660249/how-do-i-make-one-particular-line-of-a-batch-file-a-different-color-then-the-oth我看不懂原本那个改颜色代码的原理,所以想请问一下大家有没有解决的办法?
谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/975893
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.