我有一个通过 jscript(使用 cscript)运行的外部应用程序。问题是这个外部应用程序从它的执行路径中读取它的 cfg。例如,如果我单击 exe,它可能是 c:\program\myapp。
但是每当我通过我的 jscript 运行程序时,它的可执行路径就会设置为 c:\,因此它找不到它的配置文件。这个程序被称为“便携式”,因此它没有注册表项可以找到它自己的位置。
无论如何通过脚本来启动应用程序并仍然保持其真实路径而不是脚本引擎路径?
问候
乔纳斯
看看这篇文章:
示例代码在 VBScript 中,但很容易转换为 JScript。
第一个关键是使用对象的CurrentDirectory
属性WshShell
:
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