我有一个通过jscript运行的外部应用程序(使用cscript)。 问题是这个外部应用程序从其执行路径读取其cfg。例如,如果我单击exe,它可能是c:\ program \ myapp。
但是每当我通过我的jscript运行程序时,它的可执行路径就会被设置为c:\所以它无法找到它的配置文件。这个程序被称为“便携式”,因此它没有注册表条目来查找自己的位置。
无论如何通过脚本启动一个应用程序并仍然保持其真实路径而不是scriptengines路径?
此致
纳斯
答案 0 :(得分:2)
看一下这篇文章:
示例代码在VBScript中,但很容易转换为JScript。
第一个关键是使用WshShell
对象的CurrentDirectory
属性:
var objShell = new ActiveXObject("Wscript.Shell");
objShell.CurrentDirectory = "C:\\Windows";
第二个关键是提取可执行文件的目录名称。本文通过拆分路径来做到这一点,但我更喜欢使用FileSystemObject
:
var programPath = "C:\\MyApp\\myapp.exe";
var fso = new ActiveXObject("Scripting.FileSystemObject");
var programDir = fso.GetParentFolderName(programPath);
WScript.Echo(programDir); // C:\MyApp