如果文件夹名称包含空格,HTA脚本将无法工作

时间:2016-01-17 17:39:02

标签: javascript html hta

我正在寻找帮助,为什么我的简单HTA应用程序在文件路径中的文件夹名称中有空格时无法工作。

我的HTA有一个简单的按钮,用于在子文件夹中启动文本文件。

HTA有一个脚本,可以找到HTA文件的根文件夹。

如果我的HTA文件的位置是按钮下方的路径:

c:\Users\%MyUser%\Desktop\htatest2

如果文件夹名称更改为" hta test2"按钮不起作用。

c:\Users\%MyUser%\Desktop\hta test2

这是我的代码。



<html>
<head>
    <title>Application Executer</title>
    <HTA:APPLICATION ID="oMyApp" 
        APPLICATIONNAME="Application Executer" 
        BORDER="no"
        CAPTION="no"
        SHOWINTASKBAR="yes"
        SINGLEINSTANCE="yes"
        SYSMENU="yes"
        SCROLL="no"
        WINDOWSTATE="normal">

        <script type="text/javascript" language="javascript">
            var shell = new ActiveXObject("WScript.Shell");
            var rootdir = shell.currentDirectory;

            function RunFile() {
                WshShell = new ActiveXObject("WScript.Shell");
                WshShell.Run(rootdir+"/txt/text.txt", 1, false);
            }
        </script>

</head>
<body>
    <input type="button" value="Run Notepad" onclick="RunFile();" class="button" />
</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

Run在写入命令行时执行其第一个参数。您必须在参数中包含双引号。使用单引号进行连接以防止引号冲突,如下所示:

WshShell.Run('"' + rootdir + '/txt/text.txt' + '"', 1, false);