получил ниже кусок кода и возникли проблемы.

у меня есть 3 .bat файла, которые я хочу открыть в зависимости от того, введет ли пользователь 1,2 или 3. Проблема в том, что он всегда открывает опцию 1 .. любая помощь очень ценится

@echo off
:start
Color 8A
echo.
echo.
echo.
echo ----------------------------------------------------------
echo options:
echo (1) Create 4 Batch Files in 5mb,10mb,15mb,20mb of any type 
echo (2) Create 1 file of a specific size and type
echo (3) Auto Generate a Password
echo -----------------------------------------------------------
set /p __options= Select an option:
if '%_options%'=='1' goto opt1
if '%_options%'=='2' goto opt2
if '%_options%'=='3' goto opt3
ECHO.
:opt1
call "Create 4 File Sizes.bat"
goto end
:opt2
call "Sparse File Creation.bat"
goto end
:opt3
call "Password Generator.bat"
goto end
:end
pause
exit

2 ответа2

0

Удалить одно подчеркивание из:

set /p __options= Select an option:

к этому:

set /p _options= Select an option:
0

Ваша переменная - __options но ваш тест не соответствует _options .

Кроме того, вам может потребоваться обработать случай, когда ввод не 1, 2 или 3: любая другая запись будет сброшена до «opt1», что на самом деле и происходит в вашем описании, так как проверяемая переменная не была установлена ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .