WSHの最近のブログ記事

概要

任意のフォルダの、サブフォルダのサブフォルダ(サブサブフォルダ?)をリスト化して出力します。

ダウンロード

getSubSubFolders.js

使い方

スクリプトをc:¥getSubSubFolders.jsなどと保存して、
コマンドプロンプトで、
c:¥>cscript  getSubSubFolders.js //nologo
と入力すればOK。

実行結果の例

C:¥>cscript getSubSubFolders.js c:¥perl //nologo
cpan    build
cpan    sources
eg      aspSamples
eg      cgi
eg      fork
eg      IEExamples
eg      PerlEx
eg      Windows Script Components
eg      Windows Script Host
html    bin
html    Components
html    faq
・・・
長いので以下略

スクリプトのソースコード

var fso = new ActiveXObject("Scripting.FileSystemObject");

var path = argv(0);
var root = fso.getFolder(path);
var subs = getSubFolders(root);
var subsubs=[];

foreach(subs, function(sub){ subsubs = subsubs.concat(getSubFolders(sub)); });
foreach(subsubs, function($_){ echo($_.ParentFolder.Name + "\t" + $_.Name); });

//サブフォルダ一覧を取得
function getSubFolders(oFolder) {
return collectionToArray(oFolder.SubFolders);
}

//コレクションを配列に変換
function collectionToArray(collection){
var objEnu = new Enumerator(collection);
var array = [];
for (; !objEnu.atEnd(); objEnu.moveNext() ){
array.push(objEnu.item());
}
return array;
}

function echo(str) { WSH.Echo(str); }

function argv(i){
if(WSH.Arguments.length == 0) echo('引数が指定されていません。');
return WSH.Arguments(i);
}

function foreach(array,func){ for(var i in array) func(array[i]); }


以前に書いた記事「[WSH]VBSからAccessのアクションクエリを実行する方法 (ADO) 」では、アクセス側であらかじめ作っておいたアクションクエリをVBSから実行する方法を紹介しました。

WSHで動くJScriptでは、JavaScriptのpromptのような機能がありません。
なので、VBSのInputBoxを呼び出して使います。

ついにやり方を発見!!
WSHでDBプログラムが書けるなんて夢のようです。

やり方


以下のファイルを作って、同じフォルダに置く。

  1. MDBファイル

  2. JSファイル


どこかで見つけたスクリプトです。

下記のコードをメモ帳に貼り付けて、eject.jsというファイル名で保存して実行します。
すると、あら不思議~パソコンのCDトレイが開いて閉じます。

人気記事

このアーカイブについて

このページには、過去に書かれたブログ記事のうちWSHカテゴリに属しているものが含まれています。

前のカテゴリはVBAです。

次のカテゴリはPowerPointです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近の人気記事