【问题标题】:Running files in the current window with batch使用批处理在当前窗口中运行文件
【发布时间】:2015-05-12 13:08:32
【问题描述】:

这很难解释,所以我会尽力而为。

当我在批处理中使用start 命令时,它会创建一个新窗口等。

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

问题是在当前窗口中运行helpecho等命令。

我当前的代码是

:console
set COMMAND=n
set /p COMMAND=%~dp0console.exe^> %=%
if %COMMAND%==exit exit
start %COMMAND%
rem Wait 1000
goto console

我将它与 Batch to EXE 转换器一起使用,所以rem Wait 1000 是有效的。

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

我尝试过的事情:

  • 我没有使用start %COMMAND%,而是使用了%COMMAND%。这 导致错误。

(当建议不可行的事情时将添加到此列表中)

【问题讨论】:

    标签: batch-file window


    【解决方案1】:

    有两种选择:

    call %command% 
    

    哪个会等到命令结束

    start /b %command%
    

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

    【讨论】:

    • 请注意 OP,如果您运行 call 它可以更改原始上下文中的变量,而 start /b 不能,因为 start 实际上会打开一个新进程。而如果你想收集退出值(错误级别)而不是你应该使用 start.
    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多