为什么有时pause在批处理中不起作用

如下面这段程序运行时就不停止@echo offset var=beforeif "%var%" == "before"@echo afterpauseset /p abc=请输入值:@echo %abc%pause我只是初学,希望能得到较详细的解释
2026年09月23日 13:46
有2个网友回答
网友(1):

因为你把if "%var%" == "before" echo after这句分成两行错了!!!
@echo off
set var=before
if "%var%" == "before" echo after
pause
set /p abc=请输入值:
@echo %abc%
pause

但也不是不可以分,但是要加括号.你明白了吗?
这样也可以:
@echo off
set var=before
if "%var%" == "before" (
echo after)
pause
set /p abc=请输入值:
echo %abc%
pause

PS:如果第一行有@echo off了,后面都不需要加@了.
多余,除非你是为了好看!!!

网友(2):

代码问题,并非pause不起作用,简单的调下位置
@echo off
set var=before
::其实就是这条if语句 ( IF [NOT] string1==string2 command),分成两行当然执行错误
if "%var%" == "before" @echo after
pause
set /p abc=请输入值:
@echo %abc%
pause