告诉goto时,批处理文件不会跳过行

时间:2013-10-03 15:26:54

标签: batch-file goto

我在这里使用过几个,但每当我尝试这个文件时,它会直接进入: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 个答案:

答案 0 :(得分: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