Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 为什么我的批处理文件一直在关闭?_Batch File_Cmd - Fatal编程技术网

Batch file 为什么我的批处理文件一直在关闭?

Batch file 为什么我的批处理文件一直在关闭?,batch-file,cmd,Batch File,Cmd,我不明白为什么在set/p opo=行之后,它会一直关闭。 我输入操作,然后它关闭,它也不会出现:mult代码 这是我的密码: title Calculator color 0e @echo off GOTO calculator_main :calculator_main echo Enter a operation: set /p opo= if %opo%=='*'( GOTO mult ) if %opo%=='+'( GOTO add ) if %opo%=='-'( GOTO s

我不明白为什么在set/p opo=行之后,它会一直关闭。 我输入操作,然后它关闭,它也不会出现:mult代码

这是我的密码:

title Calculator
color 0e
@echo off
GOTO calculator_main
:calculator_main
echo Enter a operation:
set /p opo=
if %opo%=='*'(
GOTO mult
)

if %opo%=='+'(
GOTO add
)

if %opo%=='-'(
GOTO sub
)

if %opo%=='/'(
GOTO div
)


:mult

echo Enter a number:
set /p num1=
echo Enter a number:
set /p num2=
set /a sum=%num1%*%num2%
echo %num1% * %num2% = %sum%
GOTO: calculator_main

pause
如果有人告诉我这到底是为什么我会很感激

奥斯卡

if %opo%=='*'(
应该是

if %opo%=='*' (
空间是必需的。您的代码将尝试根据
“*”(
(字面上包括的和)测试您作为
opo
输入的字符串(

如果您确实想测试
*
的条目,请使用

if "%opo%"=="*" (
其中“分隔两个字符串,以便它们可以包含空格”

如果直接从命令提示符运行例程,而不是单击并咯咯地笑,则会看到语法错误报告


您可以研究
choice
命令(从提示符下的
choice/?
,或使用
search
查找示例)

调试批处理文件的第一条规则。从cmd提示符下运行批处理文件,以便可以看到它产生的任何错误。第二条规则:在调试批处理文件时不要使用@ECHO OFF。