2013-03-30 59 views
0

我有以下JavaScript。我想要獲取特定註冊表項中的值名稱的數據。例如,如果密鑰是HKEY_LOCAL_MACHINE\\SOFTWARE\\VideoLAN\\VLC且值名稱是InstallDir,我怎樣才能獲得InstallDir(這是一條路徑,即D:\Program Files\VideoLAN\VLC)的數據。如何在JavaScript或VBScript中獲得此路徑?在註冊表中獲取數值名稱的數值數據KEY

<html> 
<head> 
<script language="JavaScript" type="text/javascript"> 
    MyObject = new ActiveXObject("WScript.Shell") 
    function Goto() 
    { 
    var bat= MyObject.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\VideoLAN\\VLC\\InstallDir"); 
    MyObject.Run("bat/GoToLine2.bat 10 /examples/helloWorld/helloWorld.txt") ; 
    } 
</script> 
</head> 
<body> 
<button onclick="Goto()">Run BatFile</button> 
</body> 
</html> 

正如你所看到的,我想的InstallDir的文件路徑中的一個變量(BAT)保存到運行的位於的InstallDir(即D:\Program Files\VideoLAN\VLC)值數據的批處理文件(GoToLine2.bat)。你能告訴我怎樣才能得到這條道路,所以我不必使用

MyObject.Run("D:/Program Files/VideoLAN/VLC/GoToLine2.bat 10 /examples/helloWorld/helloWorld.txt"); 

在此先感謝。

回答

0
MyObject.Run(bat + "\\GoToLine2.bat 10 /examples/helloWorld/helloWorld.txt"); 

好的,我想我得到了什麼錯誤。路徑有空間,所以你需要用引號括住它,即:

MyObject.Run("\"" + bat + "\\GoToLine2.bat\" 10 /examples/helloWorld/helloWorld.txt"); 
+0

sorry..it因此未工作.. :( –

+0

究竟是如何不起作用如果您不能更具體的再怎麼幫忙? – seeker

+0

我的歉意..我不知道...我更換你的代碼..並在Internet Explorer中打開HTML文件,並單擊按鈕,它沒有運行...但是當我使用路徑「D:/ Program文件/ VideoLAN/VLC/GoToLine2.bat「它的工作。它需要做的事情有價值的不被存儲爲字符串?我不知道...裸露與我的天真: –

0

在一些語言中,你可以使用可變插值/替換把一個變量的內容轉換爲字符串字面:

perl -e 'my $v = "c"; my $s = "${v}x"; print $s, "\n";' 
cx 

無論VBScript中不Ĵ(AVA)腳本具有這樣的特徵:

% v = "c" // given variable v containing "c" 
c 
% s = "vx" // j(ava)script does not interpolate 
vx 
% s = v + "x" // so use concatenation 
cx 

另一種選擇是使用替換,而不是串聯:

>> v = "c" 
>> s = Replace("$vx", "$v", v) 
>> WScript.Echo s 
>> 
cx