0

我在公司门户(完全安全)中有一个站点,该站点启动了与某个业务组相关的多个应用程序。我遇到的问题是我需要启动的文件路径之一在路径中有一个 ²。该软件安装在全球 3000 多台计算机上,因此更改路径非常实用。这是我正在使用的代码片段:

<a href="javascript:LaunchApp1()">MC2 / ICE</a>

<script>

      function LaunchApp1() {
         if (navigator.userAgent.indexOf("WOW64") != -1 || 
            navigator.userAgent.indexOf("Win64") != -1 ){
            var ws = new ActiveXObject("WScript.Shell");
            ws.Exec('"C:\\Program Files (x86)\\MC² Software\\ice.exe"');
         }
         else {
           var ws = new ActiveXObject("WScript.Shell");
           ws.Exec("C:\\Program Files\\MC² Software\\ice.exe");
         }
      }

</script>

关于如何绕过平方字符的任何想法?到处广泛搜索。

谢谢!

4

2 回答 2

0

改用短文件名怎么样?您应该能够将整个路径转换为与 MS-DOS 兼容的路径,该路径不应包含讨厌的上标 2,并改用它。还有另一个 stackoverflow 问题询问如何将完整路径转换为短路径,最简单的答案似乎是cmd在相关目录的终端中运行它:

for /d %I in (*) do @echo %~sI

Microsoft 支持站点也包含此主题。

将有问题的目录名称转换为短格式应该会产生以下路径:

C:\Program Files\MCSOFT~1\ice.exe

或者

C:\Program Files (x86)\MCSOFT~1\ice.exe
于 2013-07-25T16:47:55.683 回答
0

http://www.fileformat.info/info/unicode/char/b2/index.htm

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals

看起来您可能可以使用 unicode 替换您的平方值,因此您的路径看起来像这样:

ws.Exec('"C:\\Program Files (x86)\\MC\u00B2 Software\\ice.exe"');
于 2013-07-25T16:51:23.557 回答