你如何等待命令完成HTML Javascript中的执行

时间:2011-10-11 13:09:42

标签: javascript html wait execute wsh

我正在编写HTML菜单(StartMenu.hta)。此菜单从DVD运行,但在运行之前,需要将一些文件复制到用户的TEMP文件夹。在打开菜单之前必须复制这些文件,因为这些文件是使用菜单所必需的。

要复制这些文件,我使用以下JavaScript函数:

function launch(){
    var shell = new ActiveXObject("WScript.Shell");
    shell.run("xcopy \Data\\VLC\ \%TEMP%\\CSE\\VLC\ /d/e/i/y");
    shell.run("xcopy \Data\\VIEWER\ \%TEMP%\\CSE\\VIEWER\ /d/e/i/y");
    shell.run("StartMenuPC.hta");
}

我遇到的问题是复制和打开菜单同时启动,而不是等待前两个完成的最后一个命令。 我考虑过使用批处理文件,但这可能会遇到与某些防火墙的冲突。

我也尝试过使用while循环,甚至检查文件是否存在于新位置,但我不太了解HTML。我也不想使用超时,因为光盘只需要复制一次文件。

1 个答案:

答案 0 :(得分:1)

shell.run接受第三个参数,该参数定义是否应该在向前移动之前完成操作。所以代码应该像

一样
var shell = new ActiveXObject("WScript.Shell");
shell.run("xcopy \Data\\VLC\ \%TEMP%\\CSE\\VLC\ /d/e/i/y", null, true);
shell.run("xcopy \Data\\VIEWER\ \%TEMP%\\CSE\\VIEWER\ /d/e/i/y", null, true);
shell.run("StartMenuPC.hta");

有关完整说明,请参阅MSDN Windows Script Host Run Method