2012-09-19 38 views
0

我有一個通過jscript(帶有cscript)運行的外部應用程序。 問題是,這個外部應用從其執行路徑讀取其cfg。例如,如果我點擊exe文件,它可能是c:\ program \ myapp。更改外部進程的執行路徑

但是,每當我通過我的jscript運行程序時,它的可執行文件路徑被設置爲c:\,因此無法找到它的配置文件。這個程序是所謂的「便攜式」,所以它沒有註冊表項來找到自己的位置。

無論如何通過一個腳本來啓動一個應用程序,仍然保持其真正的路徑,而不是scriptengines路徑?

問候

喬納斯

回答

2

看看這篇文章:

http://blogs.technet.com/b/heyscriptingguy/archive/2005/02/01/how-can-i-change-the-working-folder-of-a-script.aspx

的示例代碼是用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 
+0

我真正需要了解被塞汀了「currentDirectory所」這樣的感謝=) –