Some tips of wmi scripting in jscript (1)_javascript技巧
集合的概念在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就可以看出这一点,赫赫。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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