我正在编写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。我也不想使用超时,因为光盘只需要复制一次文件。
答案 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