>  기사  >  웹 프론트엔드  >  jscript의 WMI 스크립팅에 대한 몇 가지 팁 (1)_javascript技巧

jscript의 WMI 스크립팅에 대한 몇 가지 팁 (1)_javascript技巧

WBOY
WBOY원래의
2016-05-16 19:15:451094검색

컬렉션 개념은 Windows 스크립트, 특히 WMI 스크립트에서 매우 일반적으로 사용되며 컬렉션 작업은 기본적으로 발생합니다.
vbscript에서 컬렉션을 탐색하는 방법은 매우 간단합니다. For Each 루프를 사용하면 목적을 달성할 수 있습니다. 그러나 jscript에서 컬렉션을 사용하는 방법은 오랫동안 나를 괴롭혔습니다. msdn에서도 좋은 예제를 찾을 수 없어서
jscript가 컬렉션 작업을 수행할 수 없다는 비관적인 생각을 갖게 되었습니다.

포기할 뻔 했을 때 다른 vbscript wmi 전자책을 뒤져보다가 jscript를 발견했습니다
컬렉션을 사용하는 방법은 Enumeration 컬렉션에 특별히 사용되는 Enumerator 객체입니다. .
이 물건을 보면 어떤 생각이 드나요? 친숙해 보이죠? jscript를 사용하여 FSO를 호출한 경우 드라이브 파일
및 폴더를 열거하는 방법은 무엇입니까? FSO 예제가 명확하게 작성되어 있습니다. 예제를 좀비처럼 프로그램에 옮겼나요? 그 당시에는 컬렉션을 순회하기 위해 작성하는 것이 왜 그렇게 번거로운지 이상하게 느꼈지만, 그 당시에는 배열 방법이 작동하지 않았기 때문에
을 이렇게 작성했는지 자세히 조사하지 않았습니다. jscript에서 컬렉션을 순회하는 것은 이 작업만 수행할 수 있습니다.

지금도 여전히 궁금한 점이 있을 수 있습니다. 세트와 배열의 차이점은 무엇인가요? MS 스크립트 도움말의 원래 단어를 인용하려면: 집합과
그룹의 차이점은 집합의 구성원에 직접 액세스할 수 없다는 것입니다. 배열 작업 시 첨자를 사용하는 것과 달리 이는 현재 항목
포인터를 컬렉션의 다음 또는 이전 요소로만 이동합니다. 여기서 조금 더 깊이 생각해보면 이렇게 이해할 수 있습니다. 배열은 C
언어의 배열 개념과 동일하며, 첨자를 통해 쉽게 접근할 수 있는 선형 저장 공간입니다. 복잡한
연결리스트 등의 자료구조에 접근할 때 노드 간의 포인팅 관계를 통해서만 이전 또는 다음 요소에 접근할 수 있습니다.

Enumerator의 사용법은 매우 간단합니다. 매개변수로 탐색하려는 컬렉션을 Enumerator 객체의 생성자에 전달한 후
컬렉션의 멤버를 열거할 수 있습니다. moveFirst 메소드는 포인터
를 첫 번째 요소로 이동할 수 있고, moveNext 메소드는 현재 포인터 위치를 다음 요소로 이동하고 item 메소드를 통해 세트
의 단일 요소를 반환합니다.

예 1: 모든 드라이브 열거


/**//*
* 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    ":");                                                      ~          .


/**//*
* 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); moveNext();
}

며칠 전에도 vbscript와 jscript의 장단점에 대해 오랫동안 논의가 있었습니다. vbscript는 언어 기능이나 코드 스타일 측면에서 jscript보다 훨씬 나쁩니다. 바이트 작업을 수행할 수 없는 등 기능 구현에 몇 가지 단점이 있지만 일반적으로 jscript는 Enumerator에서 볼 수 있는 스마트 언어입니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.