Windows cmd批处理文件计算

时间:2015-10-27 04:12:33

标签: batch-file

我有这个代码,用于从用户输入中划分两个数字。如果用户为第一个或第二个数字输入数字999,它应该退出程序。如果用户为第二个数字输入0,那么它应该要求用户输入非零数字。我的问题是,当我输入两个好的数字时,我没有得到任何输出。它只显示"按任意键继续......"一旦我按任意键,然后退出整个终端。任何帮助将非常感激。

O(n^2*log(n^2))

1 个答案:

答案 0 :(得分:1)

我注意到了一些事情,特别是在这些部分。

: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,请注意分号。否则,它会说出无法找到路径的东西,并且无论如何它都会退出。在这里,echo The answer of %num1% divided by %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