Пакетный файл не пропускает строки, когда сказано перейти

Я использовал несколько gotos здесь, но всякий раз, когда я пробую файл, он идет прямо к:john, прежде чем он пытается:brutus. Почему это и как я могу это исправить?

@echo off

echo ---------------------------
echo System Online
echo ---------------------------
echo.
echo Select Tool:
goto :toolselect
:toolselect
set /p choosetool=Enter a number to select Tool: 
if %choosetool%=='1' goto :hydra
if %choosetool%=='2' goto :john
if %choosetool%=='3' goto :brutus
if %choosetool%=='4' goto :nmap
if %choosetool%=='5' goto :python
if %choosetool%=='' goto :exit

:john
start OpenJohn.bat

:brutus
start C:\Users\user\Desktop\Tools\Brutus.lnk

1 ответ

Вместо этого попробуйте этот блок - двойные кавычки дают вам безопасное сравнение, включая отравляющие символы. Строки для захвата неверного ввода позволили бы вам понять, что ни одно из ваших сравнений не работает.

set "choosetool="
set /p "choosetool=Enter a number to select Tool: "
if "%choosetool%"=="1" goto :hydra
if "%choosetool%"=="2" goto :john
if "%choosetool%"=="3" goto :brutus
if "%choosetool%"=="4" goto :nmap
if "%choosetool%"=="5" goto :python
if "%choosetool%"=="" goto :exit
echo invalid input
goto :EOF
Другие вопросы по тегам