我试图在我的批处理文件中使用/ | \ characters创建一些多行,多色ascii艺术。
但是,我认为我的批处理脚本将它们作为命令读取而不是仅输出文本。
*这是基于我在此处找到的一些着色代码:Batch Color per line
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
echo TEST
call :ColorText 0a "################################################################################################################################################################"
call :ColorText 1b "^/^|^\"
call :ColorText 0a "################################################################################################################################################################"
goto :eof
:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
特殊字符在它们前面有^,它们在引号中。
我怎样才能打印这些特殊字符用于我的Ascii Art?
以下是我得到的输出:
F:\>test
TEST
################################################################################
################################################################################
The system cannot find the path specified.
FINDSTR: Cannot open ^^/^^|^^" nul
################################################################################
################################################################################
F:\>
答案 0 :(得分:0)
您正在使用过时的代码。 jeb updated his code,然后是dbenham updated jeb's update。试试这个:
@echo off
setlocal
call :initColorPrint
call :ColorPrint 0a "################################################################################################################################################################"
call :ColorPrint 1b "/|\"
call :ColorPrint 0a "################################################################################################################################################################"
call :cleanupColorPrint
exit /b
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:colorPrint Color Str [/n]
setlocal
set "str=%~2"
call :colorPrintVar %1 str %3
exit /b
:colorPrintVar Color StrVar [/n]
if not defined %~2 exit /b
setlocal enableDelayedExpansion
set "str=a%DEL%!%~2:\=a%DEL%\..\%DEL%%DEL%%DEL%!"
set "str=!str:/=a%DEL%/..\%DEL%%DEL%%DEL%!"
set "str=!str:"=\"!"
pushd "%temp%"
findstr /p /A:%1 "." "!str!\..\x" nul
if /i "%~3"=="/n" echo(
exit /b
:initColorPrint
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do set "DEL=%%a"
<nul >"%temp%\x" set /p "=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%.%DEL%"
exit /b
:cleanupColorPrint
del "%temp%\x"
exit /b