Windows 批颜色选择错误

Windows 批颜色选择错误,windows,batch-file,Windows,Batch File,我在批处理程序中遇到了麻烦,我试图学习让用户输入所选的颜色。问题是,当我输入所需的值并按enter键时,程序关闭。我有Windows1064X @echo off :setcolor set /p %color%= "What color text do you want? [0-White 1-Blue 2-Green 3-Red 4-Yellow]" if %color% EQU 0 goto :1 if %color% EQU 1 goto :2 if %color% EQU

我在批处理程序中遇到了麻烦,我试图学习让用户输入所选的颜色。问题是,当我输入所需的值并按enter键时,程序关闭。我有Windows1064X

@echo off

:setcolor
set /p %color%= "What color text do you want? [0-White  1-Blue  2-Green  3-Red  4-Yellow]"
if %color% EQU 0 goto :1 
if %color% EQU 1 goto :2
if %color% EQU 2 goto :3
if %color% EQU 3 goto :4
if %color% EQU 4 goto :5
goto :setcolor

:1
color 07
goto :main 
:2
color 01
goto :main
:3
color 02
goto :main
:4
color 0c
goto :main
:5
color 06
goto :main

:main
echo test
pause

正如@Stephan所提到的,
set/p%color%=
应该更改为
set/p color=

设置变量时,我们不会在变量周围放置
%
s(展开它),而是输入变量的名称

下面是您的代码:

@echo off

:setcolor
set /p color="What color text do you want? [0-White  1-Blue  2-Green  3-Red  4-Yellow]"
if "%color%" EQU "0" goto :1 
if "%color%" EQU "1" goto :2
if "%color%" EQU "2" goto :3
if "%color%" EQU "3" goto :4
if "%color%" EQU "4" goto :5
goto :setcolor

    .....


顺便说一下,我在
%color%
中添加了引号(
)和数字,以防止批处理文件在遇到空输入或带有空格的输入时停止,正如@Stephan所提到的,
set/p%color%=
应更改为
set/p color=

设置变量时,我们不会在变量周围放置
%
s(展开它),而是输入变量的名称

下面是您的代码:

@echo off

:setcolor
set /p color="What color text do you want? [0-White  1-Blue  2-Green  3-Red  4-Yellow]"
if "%color%" EQU "0" goto :1 
if "%color%" EQU "1" goto :2
if "%color%" EQU "2" goto :3
if "%color%" EQU "3" goto :4
if "%color%" EQU "4" goto :5
goto :setcolor

    .....


顺便说一句,我在
%color%
中添加了引号(
)和数字,以防止批处理文件在遇到空输入或带有空格的输入时停止。如果要展开变量,请使用
set/p color=“What color”
或更好的
set/p“color=What color”
,请勾选我的答案旁边的复选标记以接受它。
set/p color=“What color”
或者更好的选择
set/p“color=What color”
如果要展开变量,请仅使用
%
。如果我的答案有帮助,请勾选我答案旁边的复选标记以接受它。