概要
任意のフォルダの、サブフォルダのサブフォルダ(サブサブフォルダ?)をリスト化して出力します。ダウンロード
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]); }
