gpt4 book ai didi

batch-file - 将 PAUSE 命令传递给批处理文件中的 START 命令

转载 作者:行者123 更新时间:2023-12-04 00:29:30 26 4
gpt4 key购买 nike

假设我有一个批处理文件,每一行都以 START 开头。同时运行命令,我希望每个新窗口都弹出并在完成时暂停,而不是关闭,以便我可以在最后阅读摘要。
start myapp.exe && pause不能用作 pause命令只是在主窗口中执行,不会通过 START 传递下去. CMD /k可以防止出现窗口,但我想避免这种情况并使用 PAUSE .

重要的是我同时运行这些,我不想为每一行创建一个单独的批处理文件。

有什么建议?

最佳答案

start命令只能用于调用单个内部或外部命令。要传递其他命令,您必须将命令传递给 CMD 的新实例并转义任何特殊字符,以便能够将它们传递给子进程(在本例中为 CMD.EXE)。

start cmd /c myapp.exe ^& pause

另外,如果启用命令扩展(这是默认情况) "CMD"可以用来代替 cmd cmd.exe ,...

请注意,它必须是 "CMD " CMD 后面有一个额外的空格所以它不同于 "CMD"
引用自启动命令帮助:

If Command Extensions are enabled, external command invocation through the command line or the START command changes as follows:
.
.
.
When executing a command line whose first token is the string "CMD " without an extension or path qualifier, then "CMD" is replaced with the value of the COMSPEC variable. This prevents picking up CMD.EXE from the current directory.



所以更安全的方法是
start "" "CMD " /c myapp.exe ^& pause

它在功能上等同于
start "" "%COMSPEC%" /c myapp.exe ^& pause

并且因为 start 的第一个引用参数命令将被解释为窗口标题,一个虚拟标题(在本例中为空标题 "")作为 start 的第一个参数被传递命令。

关于batch-file - 将 PAUSE 命令传递给批处理文件中的 START 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com