Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 平方²;Jscript启动的文件路径中的字符_Javascript_Jscript - Fatal编程技术网

Javascript 平方²;Jscript启动的文件路径中的字符

Javascript 平方²;Jscript启动的文件路径中的字符,javascript,jscript,Javascript,Jscript,我在一个公司门户(完全安全)中有一个站点,可以启动与某个业务组相关的多个应用程序。我遇到的问题是,我需要启动的文件路径之一的路径中有一个²。该软件安装在全球3000多台计算机上,因此更改路径非常有效。以下是我正在使用的代码片段: <a href="javascript:LaunchApp1()">MC2 / ICE</a> <script> function LaunchApp1() { if (navigator.userA

我在一个公司门户(完全安全)中有一个站点,可以启动与某个业务组相关的多个应用程序。我遇到的问题是,我需要启动的文件路径之一的路径中有一个²。该软件安装在全球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>

函数LaunchApp1(){
if(navigator.userAgent.indexOf(“WOW64”)!=-1 |
navigator.userAgent.indexOf(“Win64”)!=-1){
var ws=新的ActiveXObject(“WScript.Shell”);
ws.Exec(“'C:\\Program Files(x86)\\MC²Software\\ice.exe”);
}
否则{
var ws=新的ActiveXObject(“WScript.Shell”);
ws.Exec(“C:\\Program Files\\MC²Software\\ice.exe”);
}
}
有没有关于如何绕过方形字符的想法?到处找

谢谢

改用?您应该能够将整个路径转换为与MS DOS兼容的路径,该路径不应包含讨厌的上标2,并使用它。还有另一个stackoverflow问题,最简单的答案似乎是在问题目录中的
cmd
终端中运行:

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

将所讨论的目录名转换为缩写形式应产生以下路径:

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

看起来您可能可以使用unicode替换平方值,因此您的路径看起来类似于:

ws.Exec('"C:\\Program Files (x86)\\MC\u00B2 Software\\ice.exe"');

C:\\Program Files\\MCSOFT~1\\ice.exe
。。
²
字符到底有什么问题?您有不同的区域设置不是unicode的?这两个示例都非常有效。谢谢你的帮助。我现在处理的唯一问题是错误地说操作需要提升。但这种情况只发生在少数机器上。这可能值得提出第二个问题。不幸的是,我不知道有什么好方法可以通过shell命令强制它作为管理员运行。很高兴我至少能在大部分问题上提供帮助。这也很有效。你知道我该如何避开“请求的操作需要提升”的错误吗?由于我们处于公司环境中,我认为用户将无法访问更改和UAC控制。再次感谢您的回答。@pjparks-我并不真正在Windows上编写脚本,所以我不知道。不过,您可能应该将其作为另一个问题发布(或者搜索已经存在的问题)。
ws.Exec('"C:\\Program Files (x86)\\MC\u00B2 Software\\ice.exe"');