批处理文件在goto命令后关闭

时间:2017-06-08 13:54:34

标签: batch-file command-line-arguments

这是代码

@echo off 
color 0a
:user_login
set /p username=What is your username?
if %username% == admin (
cls
 goto admin_request_password
)

echo Incorrect username please try again.
cls
goto user_login

:admin_request_password

set /p Password=What is your Encryption Key?:
if %Password% == ecca1924889236 (
pause
cls
goto admin_menu
pause
 )

echo Incorrect password
pause
cls
goto user_login



:admin_menu

echo Type acct_info for account info.
echo Type site_key for website file manager.
echo type ip_info for your ip info.
echo Type close to close the Net-Sec portal
goto admin_menu_process

:admin_menu_process
set /a choice=Waiting for Request:
if %choice% == acct_info (
cls
goto acct_info ) echo Incorrect term cls goto admin_menu

if %choice%  == site_key (
goto site_key  )echo Incorrect term
cls
goto admin_menu

if %choice% == ip_info (
goto ip_info ) echo Incorrect term 
cls 
goto admin_menu

if %choice% == close (
goto close ) echo Incorrect term 
cls 
goto admin_menu
:ip_info
ipconfig 
pause
cls
goto admin_menu


:acct_info
echo Your username is: admin
echo your password is: ecca1924889236
pause
cls 
goto admin_menu




:site_info
The username is: net-sec
The password is: netsec127
pause
cls
goto admin_menu


:close 
cls

1 个答案:

答案 0 :(得分:1)

建议:

  • 不要将变量设置为%username%,因为它已经是现有的系统变量。
  • 在字符串比较中用双引号括起两个字符串。
  • 当您有一组已知选项时,请使用choice命令。
  • 尽量不要包含不必要的标签。

以下是对代码的重写,希望能帮助您进行脚本编写:

@Echo Off
Color 0A

:getName
ClS
Set/P "uname=What is your username? "
If /I Not "%uname%"=="admin" (Echo Incorrect username please try again.
    >Nul Timeout 3
    GoTo getName)

:getPass
ClS
Set/P "password=What is your encryption key? "
If Not "%password%"=="ecca1924889236" (Echo Incorrect password please try again.
    >Nul Timeout 3
    GoTo getPass)

:menu
ClS
Echo [1] Account information.
Echo [2] Website File Manager.
Echo [3] IP information.
Echo [4] Close the Net-Sec portal.

Choice /C 1234 /M "Enter your request"

If ErrorLevel 4 GoTo close
If ErrorLevel 3 GoTo ip_info
If ErrorLevel 2 GoTo site_info
If ErrorLevel 1 GoTo acct_info

GoTo :EOF

:acct_info
Echo Your username is: admin
Echo your password is: ecca1924889236
Timeout 3
GoTo menu

:site_info
Echo The username is: net-sec
Echo The password is: netsec127
Timeout 3
GoTo menu

:ip_info
IPConfig
Timeout -1
GoTo menu

:close 
ClS
Echo Closing...
Timeout 3
相关问题