【发布时间】:2014-02-01 13:24:39
【问题描述】:
我正在用批处理语言制作一个娱乐程序,但是有一个大错误:
@echo off
echo SimpleCmd is loading......
for /l %%i in (1,1,100000) do rem
cls
echo Loading end.
:ASKFORINPUT
set /p input=">>"
call :LoCase input
set input_bool=1
findstr /i /r /c:"^[ ]*:%input%\>" "%~f0" >nul 2>nul && goto %input%
::FUNCTION
:system
:system.menu
echo ---------MENU---------
echo ^| 1. System Command ^|
echo ^| 2. Back to Input ^|
if "%errorlevel%"=="1" (goto system.command)
if "%errorlevel%"=="2" (goto ASKFORINPUT)
:system.command
set /p systemcommand="cmd>>"
if %systemcommand%==simplecmd.back goto ASKFORINPUT
%systemcommand%
goto system.command
:random
:random.lowerlimit
set /p lowerlimit="Insert Lower Limit (1-32767) : "
if %lowerlimit% GTR 32767 (goto random.lowerlimit)
if %lowerlimit% LSS 1 (goto random.lowerlimit)
:random.upperlimit
set /p upperlimit="Insert Upper Limit (2-32768) : "
if %upperlimit% GTR 32768 (goto random.uppwerlimit)
if %upperlimit% LSS 2(goto random.upperlimt)
:random.generate
set /a number.random=%random%*%upperlimit%/32768+%lowerlimit%
goto ASKFORINPUT
::FUNCTION -END
::LOCASE
:LoCase
if %input_bool%==1 goto ASKFORINPUT
set input=%input:Q=q%
set input=%input:W=w%
set input=%input:E=e%
set input=%input:R=r%
set input=%input:T=t%
set input=%input:Y=y%
set input=%input:U=u%
set input=%input:I=i%
set input=%input:O=o%
set input=%input:P=p%
set input=%input:A=a%
set input=%input:S=s%
set input=%input:D=d%
set input=%input:F=f%
set input=%input:G=g%
set input=%input:H=h%
set input=%input:J=j%
set input=%input:K=k%
set input=%input:L=l%
set input=%input:Z=z%
set input=%input:X=x%
set input=%input:C=c%
set input=%input:V=v%
set input=%input:B=b%
set input=%input:N=n%
set input=%input:M=m%
set input_bool=0
::LOCASE -END
这是一个简单的程序;但错误是:
这个时候Goto出乎意料
在我输入“system.command”并按下回车键后显示此消息。
我一遍又一遍地阅读这些行,但就是看不到问题。
这条线有什么问题吗:findstr /i /r /c:"^[ ]*:%input%\>" "%~f0" >nul 2>nul && goto %input%?
任何帮助将不胜感激。
【问题讨论】:
标签: batch-file cmd goto