【问题标题】:New window question for batch (.bat) files批处理 (.bat) 文件的新窗口问题
【发布时间】:2010-10-25 23:36:51
【问题描述】:

我正在使用批处理文件打开几个新窗口。一旦他们完成了他们的流程,我就有了他们退出的 /c 设置。但是,我希望我的主要批处理过程在继续之前等待一个窗口完成,而不是一次做所有事情。

例如,如果我的主批处理文件有:

@ECHO 关闭

启动 "Win1" cmd.exe /c scomp -out ........\tasks\JARs\MessageLog.jar MessageLog.xsd -compiler "C:\Program Files\Java\jdk1.5.0_18\bin\javac .exe”

启动 "Win2" cmd.exe /c scomp -out ........\tasks\JARs\OwnshipData.jar OwnshipData.xsd -compiler "C:\Program Files\Java\jdk1.5.0_18\bin\javac 。EXE文件”

我希望 Win1 在文件移动到 Win2 之前完成其执行。但到目前为止,它们是同时执行的。

【问题讨论】:

标签: winapi batch-file cmd


【解决方案1】:

启动/等待“Win1”等

【讨论】:

  • 你为什么要做这些额外的工作?不需要使用start和cmd.exe /c,如果scomp是exe/com/bat,只需要“调用”,比如:调用程序param1 param2等
  • @Anders 也许怪物需要一个新窗口来进行文本操作,用于调试目的。
【解决方案2】:

您想使用 /wait,请参阅下面的参考。

开始 在单独的窗口中启动指定的程序或命令。 句法 START "title" [/Dpath] [options] "command" [parameters] 钥匙: title : CMD 窗口标题栏的文本(必填) 路径:起始目录 command :要运行的命令、批处理文件或可执行程序 parameters : 传递给命令的参数 选项: /MIN :最小化 /MAX : 最大化 /WAIT : 启动应用程序并等待它终止 /LOW : 使用 IDLE 优先级 /NORMAL : 使用 NORMAL 优先级 /HIGH :使用高优先级 /REALTIME : 使用 REALTIME 优先级 /B :启动应用程序而不创建新窗口。在这种情况下 ^C 将被忽略 - 将 ^Break 作为唯一的方法 中断应用程序 /I :忽略对当前环境的任何更改。 仅适用于 16 位 WINDOWS 程序的选项 /SEPARATE 从单独的内存空间开始(更健壮) /SHARED 在共享内存空间中启动(默认)

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2010-09-14
    相关资源
    最近更新 更多