天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Some tips of wmi scripting in jscript (1)

集合的概念在windows腳本中很常用,尤其是在wmi方面的腳本中基本都會(huì)遇到集合操作。
在vbscript里遍歷集合的方法很簡(jiǎn)單,F(xiàn)or Each循環(huán)就可以達(dá)到目的。但是在jscript中
如何使用集合,卻困擾了我很長(zhǎng)時(shí)間,連msdn中都找不到好的例子,令我一度悲觀的認(rèn)為
jscript不能進(jìn)行集合操作。

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

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

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

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


/**//*
* 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:通過(guò)wmi枚舉所有的進(jìn)程


/**//*
* 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在語(yǔ)言功能和代碼風(fēng)
格上比jscript要差很多,但是jscript也有些功能實(shí)現(xiàn)上的缺憾,比如沒(méi)有辦法進(jìn)行字節(jié)
操作,但是總的來(lái)說(shuō)jscript是一個(gè)聰明的語(yǔ)言,從Enumerator就可以看出這一點(diǎn),赫赫。

JavaScript技術(shù)Some tips of wmi scripting in jscript (1),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 果冻传媒视频在线播放 | 51精品少妇人妻AV一区二区 | 亚洲日产2020乱码草莓毕 | 一二三四在线观看高清电视剧 | 国产亚洲精品在线视频 | 看看妇女的B免费看 | 国产3级在线 | 嘟嘟嘟WWW免费高清在线中文 | 菠萝菠萝蜜免费播放高清 | 国产亚洲精品久久精品69 | 国产99久久久国产精品免费看 | 国产精品欧美久久久久天天影视 | 青草国产超碰人人添人人碱 | 暖暖 免费 日本 高清 在线1 | 亚洲欭美日韩颜射在线二 | 中文字幕在线播放视频 | 嘟嘟嘟WWW免费高清在线中文 | 秋霞特色大片18岁入口 | 大相蕉伊人狼人久草av | 青青草国产精品 | 亚洲视频无码高清在线 | 校园纯肉H教室第一次 | 老师给美女同学开嫩苞 | 一本之道高清在线观看免费 | 国产国产成人人免费影院 | 99久久国产露脸国语对白 | 伦理片飘花手机在线 | 激情A片久久久久久久 | 美女被触手注入精子强制受孕漫画 | 微拍秒拍99福利精品小视频 | 欧美日韩国产高清综合二区 | 精品国产乱码久久久人妻 | 99re8热视频这在线视频 | 寂寞护士中文字幕 mp4 | 年轻的女教师2017韩国在线看 | 国产精品成人免费 | 久久理论片迅播影院一级 | 三级成年网站在线观看 | 一级毛片免费播放 | 99在线观看免费 | 无码AV精品久久一区二区免费 |