Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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_Window - Fatal编程技术网

Batch file 使用批处理在当前窗口中运行文件

Batch file 使用批处理在当前窗口中运行文件,batch-file,window,Batch File,Window,这很难解释,所以我会尽力的 当我批量使用start命令时,它将创建一个新窗口等 我正在尝试制作自己的控制台批处理脚本,它不像cmd.exe那么烦人 问题是在当前窗口中运行诸如help、echo等命令 我现在的代码是 :console set COMMAND=n set /p COMMAND=%~dp0console.exe^> %=% if %COMMAND%==exit exit start %COMMAND% rem Wait 1000 goto console 我将它与批处理到EX

这很难解释,所以我会尽力的

当我批量使用
start
命令时,它将创建一个新窗口等

我正在尝试制作自己的控制台批处理脚本,它不像cmd.exe那么烦人

问题是在当前窗口中运行诸如
help
echo
等命令

我现在的代码是

:console
set COMMAND=n
set /p COMMAND=%~dp0console.exe^> %=%
if %COMMAND%==exit exit
start %COMMAND%
rem Wait 1000
goto console
我将它与批处理到EXE转换器一起使用,因此
rem Wait 1000
是有效的

脚本的一个大问题是,如果用户键入
help
echo
以及任何其他可以在cmd.exe中正常运行的命令,它将打开一个新的cmd.exe窗口并运行脚本。我不希望这种情况发生,有没有办法解决这个问题

我尝试过的事情:

  • 我没有使用
    start%COMMAND%
    而是使用
    %COMMAND%
    。这 导致了一个错误
(当建议不起作用的事情时,将添加到此列表中)

有两个选项:

call %command% 
它将等待命令结束

start /b %command%

它将在当前窗口中启动命令

请注意,如果运行
call
它可以更改原始上下文中的变量,而
start/b
不能,因为start实际上打开了一个新进程。然而,如果要收集退出值(errorlevel),则应使用start。