我需要在我的脚本可以使用它之前将用户输入从cmd转换为小写,所以我可以在If语句中使用它,但我不确切知道如何,我试图将输入与最常见的输入进行比较用户可能会写,但我想涵盖所有的可能性。
这是我到目前为止写的代码:
set colour=Default
echo Please choose one of the supported colours for the name(Red,Blue or
Green)
:WrongColour
set /p colour=
if %colour%== Red (
goto :SuportedColour
) else if %colour%== red (
goto :SuportedColour
) else if %colour%== RED (
goto :SuportedColour
) else if %colour%== Blue (
goto :SuportedColour
) else if %colour%== blue (
goto :SuportedColour
) else if %colour%== BLUE (
goto :SuportedColour
) else if %colour%== Green (
goto :SuportedColour
) else if %colour%== green (
goto :SuportedColour
) else if %colour%== GREEN (
goto :SuportedColour
)
有没有更容易的方法将所有内容转换为小写,然后我可以与它进行比较,如果是的话,继续进入我的脚本的下一个阶段?
答案 0 :(得分:1)
if /I
swhich就是你想要的:
@echo off
set colour=Default
set /p "colour=Please choose one of the supported colours for the name(Red,Blue or Green)"
if /i "%colour%" == "red" goto :SupportedColour
if /i "%colour%" == "blue" goto :SupportedColour
if /i "%colour%" == "green" goto :SupportedColour
echo %colour% is not supported..
goto :EOF
:SuportedColour
echo You chose a supported colour: %colour%
但是我看到你只有一个标签goto
是SupportedColour
所以我怀疑你只想使用一个标签,如果这些颜色中的任何颜色是输入的,那么for循环可能是一个更好的选择:
@echo off
set colour=Default
set "mycolours=blue red green"
set /p "colour=Please choose one of the supported colours for the name(Red,Blue or Green)"
for %%i in (%mycolours%) do if /i "%%i" == "%colour%" goto :SupportedColour
echo %colour% is not supported
goto :EOF
:SupportedColour
echo You chose a supported colour: %colour%
然而,你在这里也不需要goto,但我添加了它,因为我不确定你的其余代码是做什么的。