【发布时间】:2021-11-02 15:15:26
【问题描述】:
我对这段代码有疑问:
for %%n in (%listPath%) do (
echo Starting Build
echo.
devenv %%n /build Debug
if ERRORLEVEL 1 (
echo [101;93m ERROR: Error Build Project: %%n [0m
pause > nul
exit /b
)
)
为什么echo [101;93m ERROR: Error Build Project: %%n [0m 行只能在if 语句之外工作?我想在if 中显示一个红色错误。
【问题讨论】:
-
该行不会独立于位置为文本着色,缺少序列前面的转义字符
-
esc标签在代码中,是stackoverflow帮我删除了。
-
如果我把它放在 if 之外,代码就可以工作。
-
最好使用包含转义字符的变量,如
for /F "delims=#" %%a in ('prompt #$E# ^& for %%a in ^(1^) do rem') do set "ESC=%%a",并使用echo %ESC%[101;93m ERROR: %ESC[m -
我想你的问题在别处。尝试一个最小的例子。首先在
IF之外回显它,然后在IF内部回显,但没有其他代码。可能是您调用的程序之一,例如devenvdestroys 转义处理
标签: batch-file