hta/ javascript 如何使用相对路径执行应用程序

use*_*062 3 html javascript wsh hta

我正在构建一个 .hta (使用 JavaScript),我想从中启动多个应用程序。

但是当我执行 .hta 时,我收到错误消息找不到文件

这是代码:

<script type="text/javascript" language="javascript">
    function RunFile(path) {
    var relpath = window.location.href;
    var fullpath = relpath + path;

    WshShell = new ActiveXObject("WScript.Shell");
    WshShell.Run(fullpath, 1, false);
    }

    RunFile("\file.exe");
</script>
Run Code Online (Sandbox Code Playgroud)

Tee*_*emu 5

window.location.href也包括文件名和协议。尝试这个:

var relpath = window.location.pathname.replace(/\\/g,'/').split('/');
relpath.pop();// JScript: relpath.length = relpath.length - 1;
relpath = relpath.join('/') + '/';
Run Code Online (Sandbox Code Playgroud)

/请注意相反的使用,并且以结束\也很方便,因此您不需要将其添加到函数参数中。relpath/

编辑

我不确定您在没有文件的情况下获取位置是什么意思,也许是这样(来自 Windows Sripting Technologies 的引用(不幸的是现在已损坏):

"The CurrentDirectory returns a string that contains the fully qualified path of
the current working directory of the active process."
Run Code Online (Sandbox Code Playgroud)

例如,活动进程是正在运行的 HTA,因此这将给出 HTA 文件的本地路径(不带文件名)。

currentDirectory是 的属性,因此您可以在代码中WScript.Shell使用它,也可以设置工作目录。WshShell