【问题标题】:CMD runs EXE, launches HTML, wait until close and run final EXECMD 运行 EXE,启动 HTML,等到关闭并运行最终的 EXE
【发布时间】:2012-01-11 02:07:26
【问题描述】:

想要 BAT 文件运行 set-keys.EXE,启动 default.html,然后当用户关闭 html 时,运行 set-keys-back.EXE。 (它们都在同一个目录中)。这可能是从 CD 运行的,所以我可能无法写入标志文件,然后等待查看它是否被删除才能继续。已经尝试过 START /WAIT 但已经看到 WAIT 实际上不会等待 GUI 32 位应用程序。考虑过一个批处理文件调用另一个批处理文件,仍然没有运气。不希望有 PAUSE 并且用户必须回到 CMD 只是为了按下一个键 - 看起来很笨重。当它们关闭 HTML 时,我执行 top.window.close()。如果我可以在那之后放置一些其他代码会很好,但我认为一旦关闭窗口,它就会关闭 - 不再进行处理。无法让 WShell 执行运行。 HTML 状态栏只是在页面上显示错误 - 没有信息。很想听听你的想法...

【问题讨论】:

    标签: html cmd exe


    【解决方案1】:

    更新 2: 我刚刚发现您可以直接启动 IE,而无需使用 start 命令:

    @echo off
    rem You can use %SCRIPTDIR% to refer to the file to load, if you like
    rem Note that %SCRIPTDIR% will contain a trailing slash!
    set SCRIPTDIR=%~dp0
    
    echo Testing this script...
    C:\PROGRA~1\INTERN~1\iexplore.exe %SCRIPTDIR%foo.html
    echo Continuing the script...
    

    此示例适用于我(Windows XP 32 位),并等待我关闭浏览器窗口以继续。

    更新:这是启动 Internet Explorer 的更新代码块。请注意,我使用了iexplore.exe 可执行文件的短路径,并指定了要加载的文件的完整路径:

    @echo off
    echo Testing this script...
    start /wait /min cmd /C "C:\PROGRA~1\INTERN~1\iexplore.exe C:\foo.html"
    echo Continuing the script...
    

    初步回答:您提到尝试使用start /wait 命令,但您是如何明确编写的?以下批处理脚本示例适用于 Windows 7 x64:

    @echo off
    echo Testing this script...
    start /wait /min cmd /C "%windir%\system32\notepad.exe foo.html"
    echo Continuing the script...
    

    在此示例中,脚本不会继续执行,直到用户关闭记事本应用程序。这里唯一的缺点是弹出了一个额外的命令窗口,但是通过使用/min参数,我们可以最小化启动它。

    【讨论】:

    • 这非常适合记事本。我可以让它启动 default.html 吗?我已经尝试了 iexplore.exe 的完整路径名,只是 iexplore.exe ...当我运行它时,它只是按顺序运行所有三个命令,你甚至根本看不到 IE。ECHO OFF START /B put_keys.exe start /wait /min cmd /C "iexplore.exe +default.html" START /B put_keys_back.exe
    • 这对我有用:start /wait /min cmd /C "C:\PROGRA~1\INTERN~1\iexplore.exe C:\temp\test.html"。我必须关闭 IE 才能继续执行脚本。
    • 到目前为止非常出色。我同意你所说的。有机会为 default.html 使用相对路径名或本地路径名吗?这将在 CD 上运行,您知道有些人会将它作为 D: 驱动器,有些可能是 E: 或谁知道。它与批处理文件和 EXE 位于同一目录中,希望 windows 会首先默认到该目录。
    • 您可以使用这个 sn-p 获取脚本的目录:set STARTDIR=%~dp0(它所做的只是修改 %0)。有关批处理文件参数修饰符的更多信息,请参阅this article。我会用这个技巧再次更新我的答案。
    • autorun.inf 文件中的 shellexecute 调用 iexplore 并停留在常驻目录中以加载 default.html。我愿意尝试任何方法等到 HTML 关闭后再运行最后一个 put-keys-back.exe
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多