2011-08-31 51 views
2

如何用JScript枚舉我的進程的環境變量,並且將它們輸出到屏幕上?如何在JScript中枚舉我的環境變量?

+0

怎麼樣'爲(VARØ在colSystemEnvVars)alert(o +「:」+ colSystemEnvVars [o])' – mplungjan

+0

@Helen:這不是特定於我的過程。 – Mehrdad

+0

通過「process」你是指一個任意運行的進程,還是腳本宿主(cscript/wscript)的進程? – Helen

回答

8

的解決方案是一樣this answer,只有你用的WshShell.Environment("Process")代替WshShell.Environment("User")

var oShell = new ActiveXObject("WScript.Shell"); 
var oUserEnv = oShell.Environment("Process"); 

var colVars = new Enumerator(oUserEnv); 
for(; ! colVars.atEnd(); colVars.moveNext()) 
{ 
    WScript.Echo(colVars.item()); 
} 
+0

哦,所以訣竅是使用'枚舉'?我不知道,非常感謝! :) – Mehrdad

+1

是的,這就是你枚舉集合的方式,例如[FileSystemObject集合](http://msdn.microsoft.com/en-us/library/x75sb7ff.aspx)或WMI查詢結果。 'for ... in'僅適用於數組和對象屬性。 – Helen

1

快速google給出了下面的例子:

Set objShell = WScript.CreateObject("WScript.Shell") 
Set colSystemEnvVars = objShell.Environment("System") 
Set colUserEnvVars = objShell.Environment("User") 
Wscript.Echo "Computer-specific PATH Environment Variable" 
Wscript.Echo colSystemEnvVars("PATH") 
Wscript.Echo "User-specific PATH Environment Variable" 
Wscript.Echo colUserEnvVars("PATH") 
+0

對,這讓我知道任何名稱已知的變量的*值*。但我的問題是,我如何**首先枚舉所有變量? – Mehrdad

+0

這是vb,而不是js在這裏.. – mplungjan

+0

@mplungjan:這是真的,但我並不介意那部分;他們非常相似。 – Mehrdad