【发布时间】:2013-11-08 20:44:47
【问题描述】:
我们使用 HTA 文件来构建安装 CD,以便我们可以显示一些介绍性信息和指向不同安装选项的链接 - 每个链接都指向相应的 setup.exe 等文件。这在 Windows 7 之前运行良好,但在 8.1(-未尝试 8.0)上它失败并出现错误“找不到指定的文件”。原来这是因为当前目录现在是 C:\Windows\System32,而它曾经是文件所在的目录 - 在 CD 驱动器上,因此 相对路径可以工作 CD 上其他文件的链接;现在他们没有了。
换句话说,在 hta 文件中使用此代码:
<script type="text/javascript" language="javascript">
function RunFile(appname)
{
WshShell = new ActiveXObject("WScript.Shell");
alert( WshShell.CurrentDirectory );
WshShell.Run(appname, 1, false);
}
在 win 8.1 上,我们在警告框中看到 C:\Windows\System32,因此 ..\ourproduct\setup.exe 等相对路径不再起作用。
这是一个错误吗?有什么想法可以解决这个问题吗?
【问题讨论】:
-
您可以从
window.location.pathname中提取正确的路径,然后将CurrentDirectory属性设置为正确的值。 -
@Teemu 谢谢,这正是我所需要的;使用一些 lastIndexOf 和 Slice 从末尾删除文件名,它可以完美地工作。如果您将评论变成答案,我会接受。