2011-10-11 110 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完整說明,