ホームページ ウェブフロントエンド jsチュートリアル Some tips of wmi scripting in jscript (1)_javascript技巧

Some tips of wmi scripting in jscript (1)_javascript技巧

May 16, 2016 pm 07:15 PM
in jscript of wmi

集合的概念在windows脚本中很常用,尤其是在wmi方面的脚本中基本都会遇到集合操作。
在vbscript里遍历集合的方法很简单,For Each循环就可以达到目的。但是在jscript中
如何使用集合,却困扰了我很长时间,连msdn中都找不到好的例子,令我一度悲观的认为
jscript不能进行集合操作。

在我几乎快要放弃的时候,又翻出一本vbscript wmi的电子书看了看,竟然找到了jscript
使用集合的方法,那就是Enumerator对象,该对象专门用作枚举集合。看到这个对象你会
想到什么?是不是觉得很眼熟?如果你用jscript调用过FSO的话,如何枚举Drives Files
和Folders的?FSO的例子里写的明明白白,当时使用的时候是否行尸走肉般的把例子搬到
你的程序里?当时也会觉得奇怪它为什么遍历一个集合要写这么麻烦,可是就是没有深究
为什么要这样写,那时因为你对数组的那套行不通,jscript中遍历集合只能如此。

这时候你可能还是有疑问,集合和数组有什么差别?引用MS脚本帮助里的原话:集合与数
组的不同点在于集合的成员不能直接访问。不像处理数组时使用下标,这只能将当前项目
指针移动到集合下一或前一元素。这里你想的深入一点,可以这样理解,数组就相当于c
语言中的数组概念,是线性存储空间,可以通过下标很方便的访问,而集合则是一种复杂
的数据结构,比如是一个链表,你访问的话只能通过结点之间的指向关系来访问前一个或
者后一个元素。

Enumerator的用法很简单,把你要遍历集合作为参数传递给Enumerator对象的构造函数后,
你可以枚举集合的成员,atEnd方法判断是否已经到结尾,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 + ":");
    }

    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同学讨论vbscript和jscript之间的优劣,vbscript在语言功能和代码风
格上比jscript要差很多,但是jscript也有些功能实现上的缺憾,比如没有办法进行字节
操作,但是总的来说jscript是一个聪明的语言,从Enumerator就可以看出这一点,赫赫。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 で WMI プロバイダー ホストの CPU 使用率が高い問題を解決する 4 つの簡単なヒント Windows 11 で WMI プロバイダー ホストの CPU 使用率が高い問題を解決する 4 つの簡単なヒント Apr 18, 2023 pm 08:25 PM

WMIProviderHost プロセスは、Windows 11 で重要な役割を果たします。これにより、他のアプリケーションがコンピュータに関する情報を要求できるようになります。 WMIProviderHost に関連するプロセスは通常、バックグラウンドで実行されるため、通常は大量のシステム リソースを消費しません。ただし、このサービスは他のアプリケーションのせいで、時々 CPU パワーの 50% 以上を使用すると報告されています。コンピュータのプロセッサをほぼ最大能力で長時間実行すると、過熱やシステム コンポーネントの損傷につながる可能性があるため、心配です。今日のチュートリアルでは、WMIProviderHost が Windows 11 上の C で動作する理由を見ていきます。

i18n を使用して Vue で多言語切り替えを実装するためのヒント i18n を使用して Vue で多言語切り替えを実装するためのヒント Jun 25, 2023 am 09:33 AM

国際化の継続的な発展に伴い、多言語切り替え機能をサポートする必要がある Web サイトやアプリケーションがますます増えています。人気のあるフロントエンド フレームワークとして、Vue は多言語切り替えの実現に役立つ i18n と呼ばれるプラグインを提供します。この記事では、i18n を使用して Vue で多言語切り替えを実装するための一般的なテクニックを紹介します。ステップ 1: i18n プラグインをインストールする まず、npm または Yarn を使用して i18n プラグインをインストールする必要があります。コマンドラインに次のコマンドを入力します: npminst

アウトインターフェイスとインインターフェイスは何を意味しますか? アウトインターフェイスとインインターフェイスは何を意味しますか? Sep 28, 2021 pm 04:39 PM

out インターフェイスは出力インターフェイスを指し、in インターフェイスは入力インターフェイスを指します。出力インターフェイスは通常、スピーカー、ヘッドフォンなどの負荷の接続に使用されるオーディオ ソース ライン出力インターフェイスを表し、一方、入力インターフェイスは通常、CD プレーヤー、モバイル機器の接続に使用されるオーディオ ソース ライン入力インターフェイスを表します。電話、MP3 プレーヤー、コンピュータなど。

wmi が非常に多くの cpu_Win10_WmiProviderHost を占有している場合の対処方法 cpu ソリューション wmi が非常に多くの cpu_Win10_WmiProviderHost を占有している場合の対処方法 cpu ソリューション Mar 20, 2024 pm 02:10 PM

win10 システムの動作速度が遅くなります。タスク マネージャーを開くと、WMIProviderHost が CPU リソースを多く消費していることがわかります。システムがこんなに遅いのも不思議ではありません。詳細な解決策を見てみましょう。1. Win ボタンを押します。キーボードの +R キーの組み合わせで「ファイル名を指定して実行」を開き、services.msc コマンドを入力して OK または Enter を押してサービスを開きます。2. サービス ウィンドウで、WindowsManagementInstrumentation という名前のサービス項目を見つけてダブルクリックします。3. プロパティでWindowsManagementInstrumentation の (ローカル コンピューター) ウィンドウで、[依存関係] タブに切り替えると、IPHelper コンポーネントの依存関係を確認できます。

win10 システムがクラッシュしてメモリ不足が表示された場合はどうすればよいですか? win10 システムがクラッシュしてメモリ不足が表示された場合はどうすればよいですか? Feb 09, 2024 pm 03:00 PM

Win10 システムがクラッシュし、メモリ不足が表示されます。最近、多くのユーザーがコンピューターを使用しているときにこのプロンプトに遭遇し、修復するには頻繁に再起動が必要です。では、この状況にどう対処すればよいでしょうか? この問題に対処するために、この問題の win10 チュートリアルはここにあります。より多くの友人が問題を解決できるように支援することを期待して、大多数のユーザーと協力して操作を進めています。 win10 システムがクラッシュし、メモリ不足が表示された場合の対処方法 1. デスクトップ上でこのコンピュータを右クリックし、オプション リストで [プロパティ] を選択します。 2. 新しいウィンドウインターフェイスに入ったら、左上隅にある「システムの詳細設定」オプションをクリックします。 3. 開いたウィンドウで「」に切り替えます。

Mysql の on、in、as、where の違いは何ですか? Mysql の on、in、as、where の違いは何ですか? Jun 03, 2023 am 11:37 AM

Mysqlon、in、as、where の違い 答え: Where クエリ条件は、内部接続と外部接続に on をエイリアスとして使用し、特定の値が特定の条件で 2 つのテーブルを作成するかどうかをクエリするために in を使用します:student、scorestudent:score: whereSELECT*FROMstudentWHEREs_sex=' Male'例: onSELECT*FROMstudentLEFTJOINscoreonstudent.s_id=score.s_id; on と where の組み合わせ: SELECT*FROMstudentLEFTJOINs

wmi プロバイダー ホストはプロセスを終了できますか? wmi プロバイダー ホストはプロセスを終了できますか? Feb 21, 2024 am 09:10 AM

バックグラウンドをクリーンアップするときに、多くの友人がタスク マネージャーで wmiproviderhost プロセスを見たことがあるはずです。誰もが最も興味があるのは、このプロセスを終了できるかどうかです。実際にはプロセスを終了できますが、お勧めできません~wmiproviderhost は終了できます?: 回答: wmiproviderhost はプロセスを終了できます。ただし、これはシステムプロセスであり、直接閉じるとその後の使用に影響を与える可能性があるため、ユーザーが強制的に閉じることは強くお勧めしません。 wmiproviderhost のプロセスを終了する方法: 1. まず、タスクバーを右クリックし、「タスク マネージャー」と入力します。 2. 次に、wmiproviderhost プロセスを見つけます。 3.

デバイスドライバーのブルースクリーンでスレッドスタックを修正する5つの方法 デバイスドライバーのブルースクリーンでスレッドスタックを修正する5つの方法 Mar 25, 2024 pm 09:40 PM

一部のユーザーは、Microsoft の 3 月の Win11 アップデート パッチ KB5035853 をインストールした後、ブルー スクリーン オブ デス エラーが発生し、システム ページに「ThreadStuckinDeviceDriver」が表示されたと報告しました。このエラーはハードウェアまたはドライバーの問題によって発生する可能性があることが理解されています。ここでは、コンピューターのブルー スクリーンの問題をすぐに解決できる 5 つの修正方法を紹介します。方法 1: システム ファイル チェックを実行する コマンド プロンプトで [sfc/scannow] コマンドを実行すると、システム ファイルの整合性の問題を検出して修復できます。このコマンドの目的は、欠落または破損したシステム ファイルをスキャンして修復し、システムの安定性と通常の動作を確保することです。方法 2: 1. 「ブルー スクリーン修復ツール」をダウンロードして開きます。

See all articles