Преобразование ввода пользователя в нижний регистр в пакетном файле - PullRequest
0 голосов
/ 07 мая 2018

Мне нужно преобразовать пользовательский ввод из 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
)

Есть ли намного более простой способ просто преобразовать все в нижний регистр, чтобы я мог сравнить его и перейти к следующему этапу в моем сценарии, если да?

1 Ответ

0 голосов
/ 07 мая 2018

if /I - это то, что вы хотите:

@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%

Здесь вам, однако, также не нужно иметь переход, но я добавил его, так как не уверен в том, что делает остальная часть вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...