2011-10-11 111 views
0

我正在写一个HTML菜单(StartMenu.hta)。该菜单从DVD运行,但在运行之前,需要将一些文件复制到用户的TEMP文件夹中。这些文件必须在菜单打开前被复制,因为这些文件对于使用菜单是必需的。你如何等待一个命令完成HTML执行HTML

要复制这些文件,我用下面的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

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完整说明,