我正在使用Batch为个人项目创建一个简单的命令行。但是,每当我尝试在其中执行批处理文件时,命令行都会在批处理文件完成后立即关闭。为什么会这样,我该如何解决?
这是源的相关位(也是SSCCE):
@echo off
:loopstart
set /p comnd=%cd%^>
%comnd%
goto loopstart
我有意见,但必须给你一个答案,所以有几件事:
Set 中的/p 选项会生成用户输入提示,因此它正在等待答案,但你未处理任何用户响应。
您已经设置了一个无限循环,最后是goto(但这不一定会导致CMD窗口关闭)。
最后重新删除goto并添加暂停,您应该能够跟踪问题。
编辑:每个用户评论的新答案---------------------------------------
在此蝙蝠中使用 call,并在从此提示符运行的每个蝙蝠末尾退出/b。
:loopstart
set /p comnd=%cd%^>
call %comnd%
goto loopstart