Batch file Windows cmd批处理文件计算

Batch file Windows cmd批处理文件计算,batch-file,Batch File,我有一个代码,它将用户输入的两个数字分开。如果用户输入999作为第一个或第二个号码,则应退出程序。如果用户为第二个数字输入0,则应要求用户输入非零数字。我的问题是,当我输入两个好的数字时,我没有得到任何输出。它只显示“按任意键继续…”,然后在我按任意键后退出整个终端。任何帮助都将不胜感激 :MAIN cls echo. SET /p num1="Please enter the first number: " if %num1%==999 GOTO EOF cls :SECOND_NUM SE

我有一个代码,它将用户输入的两个数字分开。如果用户输入999作为第一个或第二个号码,则应退出程序。如果用户为第二个数字输入0,则应要求用户输入非零数字。我的问题是,当我输入两个好的数字时,我没有得到任何输出。它只显示“按任意键继续…”,然后在我按任意键后退出整个终端。任何帮助都将不胜感激

:MAIN
cls
echo.
SET /p num1="Please enter the first number: "
if %num1%==999 GOTO EOF
cls

:SECOND_NUM
SET /p num2="Please enter the second number: "
if %num2%==999 GOTO EOF
if %num2%==0 GOTO ERROR
echo.
GOTO DIVISION

:DIVISION
SET /A result = %num1% / %num2%
echo The answer of %num1% divided by %num2% = %result% >> results.txt
pause
exit
GOTO CONTINUE



:ERROR
echo Error! Cannot divide by 0 (zero). Enter a non zero second number, please.
GOTO SECOND_NUM


:CONTINUE
echo To Exit the program, please enter 999
GOTO MAIN
echo.
pause 
EXIT

我注意到一些事情,尤其是在这些部分

:MAIN
cls
echo.
SET /p num1="Please enter the first number: "
if %num1%==999 GOTO EOF
cls

:SECOND_NUM
SET /p num2="Please enter the second number: "
if %num2%==999 GOTO EOF
if %num2%==0 GOTO ERROR
echo.
GOTO DIVISION

:DIVISION
SET /A result = %num1% / %num2%
echo The answer of %num1% divided by %num2% = %result% >> results.txt
pause
exit
GOTO CONTINUE
现在在这些
%num2%==999 GOTO-EOF
中,我认为在文件结束GOTO时退出批处理文件的正确方法是
GOTO:EOF
,请注意分号。否则它会说找不到路径,并且无论如何它都会退出。在这里,
回显%num1%除以%num2%=%result%>>results.txt的答案,您告诉批处理文件要做的就是通过
>results.txt将输出重定向到results.txt,因此如果您想显示文本,只需删除那一小段即可。最后,在暂停之后,在您想要显示计算的地方,在您告诉文件转到哪里之前,您包括了一个
exit
,因此批处理文件退出


编辑 下面是我将如何处理您的整个批处理文件。我移动了一些东西,去掉了一些,增加了一些

@ECHO OFF
COLOR 0A

:CONTINUE
CLS
ECHO.
SET /P X=Do you wish to divide? [Y/N] 
IF /I %X% EQU Y (GOTO :MAIN) ELSE (GOTO :EOF)

:MAIN
CLS
ECHO.
SET /p num1="Please enter the first number: "

:SECOND_NUM
CLS
ECHO.
SET /p num2="Please enter the second number: "
IF "%num2%" EQU "0" GOTO :ERROR

:DIVISION
CLS
ECHO.
SET /A result=%num1% / %num2%
ECHO The answer of %num1% divided by %num2% = %result%
ECHO The result of %num1% divided by %num2% = %result% >> results.txt
PAUSE
GOTO :CONTINUE

:ERROR
CLS
ECHO.
ECHO Error! Cannot divide by 0 (zero). Enter a non zero second number, please.
PAUSE
GOTO :SECOND_NUM

这是因为输出被重定向到results.txt。谢谢你,这帮了大忙。我有一个问题,是否有办法通知用户“输入999退出程序”,然后用户输入999退出程序,如果没有,则重新开始。我尝试了:CONTINUE函数,如
:CONTINUE
设置/I input=“要退出程序,请输入999”
如果%input%==999转到:EOF
转到MAIN
回显。
暂停
退出
我收到一条错误消息,说命令语法不正确,此时转到是意外的time@Truecolor,我为你编辑了我的答案,这应该可以解决任何问题。我个人不会有一个数字形式的退出方法,在一个计算器中,只是在我想除以999的情况下,我会陷入困境。希望我编辑的答案就是你想要的。谢谢你的帮助。你的代码看起来比我的干净多了。只是我必须在分配任务时使用999选项。