Batch file 需要帮助成批着色特定文本吗

Batch file 需要帮助成批着色特定文本吗,batch-file,Batch File,我正在尝试给文本的特定部分涂上颜色,并且部分成功了。我正在使用call:colorEcho行给文本上色。行不通的是第72行。它第一次起作用,在第54行,但下一次不行。我只是想知道这里是否有人知道如何解决这个问题。 顺便说一句,我是从 @echo关闭 SETLOCAL EnableDelayedExpansion 对于/F“tokens=1,2 delims=#”%%a in(‘“prompt#$H#$E#&echo on&for%%b in(1)do rem“’)do( 设置“DEL=%%a”

我正在尝试给文本的特定部分涂上颜色,并且部分成功了。我正在使用
call:colorEcho
行给文本上色。行不通的是第72行。它第一次起作用,在第54行,但下一次不行。我只是想知道这里是否有人知道如何解决这个问题。 顺便说一句,我是从

@echo关闭
SETLOCAL EnableDelayedExpansion
对于/F“tokens=1,2 delims=#”%%a in(‘“prompt#$H#$E#&echo on&for%%b in(1)do rem“’)do(
设置“DEL=%%a”
)
:开始
为了创造一个人类大师级种族,你需要做的就是完成连接避雷针和物种的电路。你会这么做吗?
ping-n2 1.1.1.1>nul
回声。
(1)连接电路。
回声2)不,你拿着你的作品烧掉。
回声。
设置/p选项=立即选择:
如果“%Choice%”==“1”转到唤醒
如果“%Choice%”==“2”转到end1
:唤醒
cls
回声3
超时/t 2/nobreak>nul
cls
回声2
超时/t 2/nobreak>nul
cls
回声1
超时/t 2/nobreak>nul
cls
回声裂缝!!
超时/t 2/nobreak>nul
cls
回音闪电击中了杆子,你可以看到桌子上床单下面的标本在移动。
暂停
cls
这个生物坐了起来。这比你想象的更恶心,你很害怕。它目不转睛地盯着你,你怎么办?
回声。
回声1)为你的生命而奔跑。
呆在房间里。
回声。
设置/p选项=立即选择:
如果“%Choice%”==“1”转到run4life
如果“%Choice%”==“2”转到驻留帐户
:run4life[
cls
]
:寄宿[
cls
回声怪物盯着你看。
超时/t 4/nobreak>nul
呼应它的尖叫声
超时/T1/nobreak>nul
呼叫:colorEcho 0a“Raaaauughhh”
超时/t 2/nobreak>nul
回声。
回声1)为你的生命而奔跑。
呆在房间里。
回声。
设置/p选项=立即选择:
如果“%Choice%”==“1”转到run4life
如果“%Choice%”==“2”转到staycalm2
]
:staycalm2
[
cls
超时/t 3/nobreak>nul
你听到敲门声了吗。
呼叫:colorEcho 0a“喂,有人吗?有人报告说听到你家里有人尖叫。”
回声。
你应该如何反应?
回声。
回声1)跳出窗户。
回声2)开门。
回声。
设置/p选项=立即选择:
如果“%Choice%”==“1”转到run4life
如果“%Choice%”==“2”转到staycalm3
]
:staycalm3
[
cls
呼叫:colorEcho 0c“哦,是的,我只是被一只蜘蛛吓坏了。”
回声。
超时/t 2/nobreak>nul
回声。
呼叫:colorEcho ob“uhmmm…”
超时/t 2/nobreak>nul
回声。
回声。
电话:colorEcho 0b“好吧,我进来只是看看,你介意吗?
]
:完1
cls
祝贺你,你已经完成了游戏,没有造成任何人死亡!
回声。
回声1)出口
回声2)再次播放!
回声。
设置/p选项=立即选择:
如果“%Choice%”==“1”转到
如果“%Choice%”==“2”先转到
:彩色回波
回音
"%~2"
findstr/v/a:%1/R“^$”“%~2”个
删除“%~2”>nul 2>&1i

文本中的问号把它搞糟了。顺便说一句,我想你的意思是第70行失败了。

文本中的问号把它搞糟了。顺便说一句,我想你的意思是第70行失败了。

你使用的是彩色打印例程的原始版本,无法处理我所使用的字符以文件名验证:
\
/
*
&
。您正在使用的版本试图创建一个名称等于所显示字符串的文件,因此它无法用于您的问题字符串


上的前三个答案有更复杂的版本(更复杂),可以处理几乎任何字符。

您使用的是无法处理文件名中无效字符的彩色打印例程的原始版本:
\
/
*
&
|
。您正在使用的版本试图创建一个名称等于所显示字符串的文件,因此它无法用于您的问题字符串


排名前三位的答案有更复杂的版本(更复杂),可以处理几乎任何字符。

另外,您所说的转义是什么意思?你是如何做到的?你是正确的,
导致了这个问题,但是你的答案的其他方面都是错误的。那个\/和?在批处理文件中使用时不需要转义,但是?不能在文件名中使用。逃避也没有好处。还有,你说的逃避是什么意思?你是如何做到的?你是正确的,
导致了这个问题,但是你的答案的其他方面都是错误的。那个\/和?在批处理文件中使用时不需要转义,但是?不能在文件名中使用。逃避也没有什么好处。正如你所见,人们回答了你的问题。如果其中一个答案确实回答了您的问题,请单击旁边的“V”符号。这样一来,你和回答问题的人都会获得声誉。正如你所见,人们回答了你的问题。如果其中一个答案确实回答了您的问题,请单击旁边的“V”符号。这样,它将为你和回答问题的人提供声誉。
@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"
)
:start
echo You have been studying for years for this moment, to create a human master race, all you have to do is complete the circuit connecting the lightning rods to the speciman.  Do you do it?
ping -n 2 1.1.1.1 > nul
echo.
echo 1) Connect the circuit.
echo 2) No, you take your work and burn it.
echo.
set /p Choice=Choose Now: 
if "%Choice%"=="1" goto awaken
if "%Choice%"=="2" goto end1

:awaken
cls
echo 3
timeout /t 2 /nobreak >nul
cls
echo 2
timeout /t 2 /nobreak >nul
cls
echo 1
timeout /t 2 /nobreak >nul
cls
echo CRACK!!
timeout /t 2 /nobreak >nul
cls
echo Lightning strikes the rod and you see movement coming from the speciman under the sheet on the table.
pause
cls
echo The creature sits up.  It is more disgusting then you ever could have imagined, you are terrified.  It stares at you with mindless eyes, what do you do?
echo.
echo 1) Run for your life.
echo 2) Stay in the Room.
echo.
set /p Choice=Choose Now: 
if "%Choice%"=="1" goto run4life
if "%Choice%"=="2" goto staycalm

:run4life [
cls

]

:staycalm [
cls
echo The monster stares at you.
timeout /t 4 /nobreak >nul
echo It screams
timeout /t 1 /nobreak >nul
call :colorEcho 0a "RAAAAUUUGGGHHH"
timeout /t 2 /nobreak >nul
echo.
echo 1) Run for your life.
echo 2) Stay in the Room.
echo.
set /p Choice=Choose Now: 
if "%Choice%"=="1" goto run4life
if "%Choice%"=="2" goto staycalm2
]

:staycalm2
[
cls
timeout /t 3 /nobreak >nul
echo You hear a knock at the door.
call :colorEcho 0a " Hello, anyone there?  Someone reported hearing a scream from your residence."
echo.
echo How should you react?
echo.
echo 1) Jump out the window.
echo 2) Answer the door.
echo.
set /p Choice=Choose Now: 
if "%Choice%"=="1" goto run4life
if "%Choice%"=="2" goto staycalm3
]

:staycalm3
[
cls
call :colorEcho 0c "Oh yes, I was just scared by a spider."
echo.
timeout /t 2 /nobreak >nul
echo.
call :colorEcho ob "uhhmmm..."
timeout /t 2 /nobreak >nul
echo.
echo.
call :colorEcho 0b "Well, do you mind if I come in just to check around?
]

:end 1
cls
echo Congratulations, you have completed the game without causing anyone to die!
echo.
echo 1) Exit
echo 2) Play Again!
echo.
set /p Choice=Choose Now: 
if "%Choice%"=="1" goto 
if "%Choice%"=="2" goto first

:colorEcho
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i