objFolder = Shell.NameSpace(vDir);
vDirはShellオブジェクトの
Openメソッドなどと同様です。
scripts/fldtitle.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var objFolder = Shell.NameSpace(3); WScript.Echo(objFolder.Title); var objFolder2 = objFolder.ParentFolder; WScript.Echo(objFolder2.Title);NameSpaceの引数は3になっていますが、 これはコントロールパネルを表します。 Titleプロパティは"コントロール パネル"となります。 要するにエクスプローラの表示になるんですね。
Itemsメソッドで
フォルダの中のアイテムを列挙することができます。
まず、Itemsメソッドで
FolderItemsオブジェクトを得て、
FolderItemsオブジェクトの
Itemメソッドで
フォルダの中の一つ一つのFolderItemオブジェクトを得ます。
scripts/flditems.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var objFolder = Shell.NameSpace(0); //デスクトップ var objFolderItems = objFolder.Items(); for(var i = 0; i < objFolderItems.Count; i++) WScript.Echo(objFolderItems.Item(i).Name);FolderItemオブジェクトの Nameプロパティで アイテムの名前を得ることができるので、 デスクトップの下のアイテムの名前を列挙することになります。
GetDetailsOfで 個々のアイテムの詳細な情報を得ることができます。
objFolder.GetDetailsOf(vItem, iColumn);
vItemはFolderItemオブジェクトを表します。
iColumnに応じて返す情報が以下のように変わります。
| iCound | 説明 |
|---|---|
| 0 | オブジェクトの名前 |
| 1 | オブジェクトのサイズ |
| 2 | オブジェクトの種類 |
| 3 | オブジェクトの更新日時 |
| 4 | オブジェクトの属性 |
| -1 | オブジェクトの説明 |
0だと上のスクリプトと同じことになります。
scripts/getdetailsof.js -------------------------------------------------------------------- var Shell = WScript.CreateObject("Shell.Application"); var objFolder = Shell.NameSpace(0); var objFolderItems = objFolder.Items(); for(var i = 0; i < objFolderItems.Count; i++) WScript.Echo(objFolder.GetDetailsOf(objFolderItems.Item(i), 0));-1のときだけは意味があるのかな。
ParseNameメソッドで 名前がわかっているアイテムに対応する FolderItemオブジェクトを得ることができます。
objFolder.ParseName(bName);
bNameはアイテムの名前です。
scripts/parsename.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var c_root = Shell.NameSpace("c:\\"); WScript.Echo(c_root.Title); var a = c_root.ParseName("autoexec.bak"); //FolderItemオブジェクト WScript.Echo(a.Name);
objFolder.CopyHere vItem, [vOptions]
vItemはFolderItemオブジェクトか
FolderItemsオブジェクトかアイテムの名前です。
scripts/copyhere1.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var desktop = Shell.NameSpace(0); var fSendTo = Shell.NameSpace("c:\\windows\\SendTo"); var item1 = fSendTo.Items().Item(0); desktop.CopyHere(item1); //FolderItemオブジェクト
scripts/copyhere2.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var desktop = Shell.NameSpace(0); var fSendTo = Shell.NameSpace("c:\\windows\\SendTo"); var items1 = fSendTo.Items(); desktop.CopyHere(items1); //FolderItemsオブジェクト
scripts/copyhere3.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var desktop = Shell.NameSpace(0); desktop.CopyHere("c:\\autoexec.bat"); //名前vOptionsは次の表のFlagの組合せです。
| Flag | 値 | 説明 |
|---|---|---|
| FOF_ALLOWUNDO | 0x0040 | Undoが有効 |
| FOF_NOCONFIRMATION | 0x0010 | 上書きしますかとか聞いてこなくなる |
| FOF_NO_CONNECTED_ELEMENTS | 0x2000 | |
| FOF_NOCOPYSECURITYATTRIBS | 0x0800 | |
| FOF_NOERRORUI | 0x0400 | エラーを表示しない |
| FOF_NORECURSION | 0x1000 | 再帰的なディレクトリの処理はしない |
| FOF_RENAMEONCOLLISION | 0x0008 | 同じ名前があったら名前を付け替える |
| FOF_SILENT | 0x0004 | 進度を表す表示がない |
| FOF_SIMPLEPROGRESS | 0x0100 | 進度を表す表示でファイル名を省略 |
まだ調べることができていない項目については説明を省いています。 また、関係なさそうな定数は消去しています。
scripts/copyhere4.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var desktop = Shell.NameSpace(0); desktop.CopyHere("c:\\Program Files", 0x1040);上の場合はFOF_ALLOWUNDOと FOF_NORECURSIONのフラグが立っているので、 デスクトップに"Program Files"というフォルダだけコピーされます。 また、Undo(Ctrl+Z)は有効です。
MoveHereメソッドで アイテムをそのフォルダに移動することができます。
objFolder.MoveHere vItem, [vOptions]
vItemとvOptionsはCopyHereと同じです。
scripts/movehere.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var desktop = Shell.NameSpace(0); desktop.MoveHere("c:\\autoexec.bak");NewFolderメソッドで そのフォルダに新しいフォルダを作ることができます。
objFolder.NewFolder bName, [vOptions]
bNameは新しいフォルダの名前です。
vOptionsは今は使われていないそうです。
scripts/newfolder.js ------------------------------------------------------ var Shell = WScript.CreateObject("Shell.Application"); var favorites = Shell.NameSpace(6); //お気に入り favorites.NewFolder("天気予報でございます");これってデスクトップ(NameSpace(0))だとうまくいかないんですね。