最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Some tips of wmi scripting in jscript (1)

 更新時間:2007年04月03日 00:00:00   作者:  
集合的概念在windows腳本中很常用,尤其是在wmi方面的腳本中基本都會遇到集合操作。
在vbscript里遍歷集合的方法很簡單,F(xiàn)or Each循環(huán)就可以達到目的。但是在jscript中
如何使用集合,卻困擾了我很長時間,連msdn中都找不到好的例子,令我一度悲觀的認為
jscript不能進行集合操作。

在我?guī)缀蹩煲艞壍臅r候,又翻出一本vbscript wmi的電子書看了看,竟然找到了jscript
使用集合的方法,那就是Enumerator對象,該對象專門用作枚舉集合??吹竭@個對象你會
想到什么?是不是覺得很眼熟?如果你用jscript調(diào)用過FSO的話,如何枚舉Drives Files
和Folders的?FSO的例子里寫的明明白白,當(dāng)時使用的時候是否行尸走肉般的把例子搬到
你的程序里?當(dāng)時也會覺得奇怪它為什么遍歷一個集合要寫這么麻煩,可是就是沒有深究
為什么要這樣寫,那時因為你對數(shù)組的那套行不通,jscript中遍歷集合只能如此。

這時候你可能還是有疑問,集合和數(shù)組有什么差別?引用MS腳本幫助里的原話:集合與數(shù)
組的不同點在于集合的成員不能直接訪問。不像處理數(shù)組時使用下標,這只能將當(dāng)前項目
指針移動到集合下一或前一元素。這里你想的深入一點,可以這樣理解,數(shù)組就相當(dāng)于c
語言中的數(shù)組概念,是線性存儲空間,可以通過下標很方便的訪問,而集合則是一種復(fù)雜
的數(shù)據(jù)結(jié)構(gòu),比如是一個鏈表,你訪問的話只能通過結(jié)點之間的指向關(guān)系來訪問前一個或
者后一個元素。

Enumerator的用法很簡單,把你要遍歷集合作為參數(shù)傳遞給Enumerator對象的構(gòu)造函數(shù)后,
你可以枚舉集合的成員,atEnd方法判斷是否已經(jīng)到結(jié)尾,moveFirst方法可以把指針移動
到第一個元素,moveNext方法把當(dāng)前的指針位置移動到下一個元素,通過item方法返回集
合中的單個元素。

例1:枚舉所有的驅(qū)動器


/**//*
* cscript ListDrive.js
*/
var oFSO = new ActiveXObject("Scripting.FileSystemObject");
var enDrives = new Enumerator(oFSO.Drives);
var oDrive;
while (! enDrives.atEnd()) {
    oDrive = enDrives.item();

    if (oDrive.IsReady) {
        WScript.Echo(oDrive.DriveLetter + ":");
    }

    enDrives.moveNext();
}
例2:通過wmi枚舉所有的進程


/**//*
* cscript ListProcess.js
*/
var sComputerName = ".";
var oLoc = new ActiveXObject("WbemScripting.SWbemLocator");
var oSvc = oLoc.ConnectServer(sComputerName, "root\\cimv2");
var colItems = oSvc.ExecQuery("SELECT * FROM Win32_Process");
var enProcesses = new Enumerator(colItems);

while (! enProcesses.atEnd()) {
    WScript.Echo(enProcesses.item().Name);
    enProcesses.moveNext();
}

前幾天還和Long同學(xué)討論vbscript和jscript之間的優(yōu)劣,vbscript在語言功能和代碼風(fēng)
格上比jscript要差很多,但是jscript也有些功能實現(xiàn)上的缺憾,比如沒有辦法進行字節(jié)
操作,但是總的來說jscript是一個聰明的語言,從Enumerator就可以看出這一點,赫赫。

相關(guān)文章

最新評論

莲花县| 琼结县| 洪湖市| 剑河县| 定边县| 板桥市| 广汉市| 普陀区| 土默特右旗| 阳谷县| 新绛县| 平凉市| 丰顺县| 图木舒克市| 南皮县| 梓潼县| 涿州市| 云阳县| 健康| 德昌县| 安图县| 府谷县| 泉州市| 乌什县| 南和县| 太和县| 甘谷县| 龙口市| 岑巩县| 察哈| 香河县| 平阳县| 桂东县| 错那县| 秀山| 太谷县| 卫辉市| 通山县| 巩留县| 黄陵县| 多伦县|