Пакетный файл закрывается после ввода выбора - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь заставить мой скрипт искать файл, сохранять его как переменную и запускать скрипт python, используя эту переменную. Однако, когда я ввожу свой выбор, пакетный файл закрывается.

@echo off
:menu
echo Welcome to BAT laucher
echo 1. The last ride 3.0
echo 2. The last ride 2.4
echo 3. The last ride 2.0
echo 4. The last ride 1.3
echo 5. The last ride 1.1.2
SET /P _inputname= Please enter your choice:
IF "%_inputname%"=="1" GOTO :thelastride3.0
IF "%_inputname%"=="2" GOTO :thelastride2.4
IF "%_inputname%"=="3" GOTO :thelastride2.0
IF "%_inputname%"=="4" GOTO :thelastride1.3
IF "%_inputname%"=="5" GOTO :thelastride1.1.2
ELSE exit

:thelastride3
@echo off
FOR /F "usebackq tokens=*" %%G IN ('WHERE /R "The Last Ride - Beta Release 3.0" The Last Ride.py') DO SET _run=%%G
:: show the result
start %_run%
goto menu

:thelastride2.4
FOR /F "usebackq tokens=*" %%G IN ('WHERE /R "The Last Ride - Beta Release 2.4" The Last Ride.py') DO SET _run=%%G
:: show the result
start %_run%
goto menu

:thelastride2.0
FOR /F "usebackq tokens=*" %%G IN ('WHERE /R "The Last Ride - Beta Release 2.0" The Last Ride.py') DO SET _run=%%G
:: show the result
start %_run%
goto menu

:thelastride1.3
FOR /F "usebackq tokens=*" %%G IN ('WHERE /R "The Last Ride - Beta Release 1.3" The Last Ride.py') DO SET _run=%%G
:: show the result
start %_run%
goto menu

:thelastride1.1.2
FOR /F "usebackq tokens=*" %%G IN ('WHERE /R "The Last Ride - Beta Release 1.1.2" The Last Ride.py') DO SET _run=%%G
:: show the result
start %_run%
goto menu

1 Ответ

0 голосов
/ 17 октября 2019

Мы можем использовать choice вместо if операторов и goto. Мы также можем установить путь для поиска и не иметь несколько меток.

@echo off
:menu
echo Welcome to BAT laucher
echo [1] The last ride 3.0
echo [2] The last ride 2.4
echo [3] The last ride 2.0
echo [4] The last ride 1.3
echo [5] The last ride 1.1.2
choice /c 12345 /M "Please Select"

if %errorlevel% equ 1 set "_path=The Last Ride - Beta Release 3.0"
if %errorlevel% equ 2 set "_path=The Last Ride - Beta Release 2.4"
if %errorlevel% equ 3 set "_path=The Last Ride - Beta Release 2.0"
if %errorlevel% equ 4 set "_path=The Last Ride - Beta Release 1.3"
if %errorlevel% equ 5 set "_path=The Last Ride - Beta Release 1.1.2"

for /f "delims=" %%i in ('where /R c:\ "The Last Ride.py" ^| find /i "%_path%"') do start "" Python "%%i"
goto menu
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...