2014年6月2日月曜日
dirusem
' --< フォルダの再帰処理 >------------------------------------------------------
Sub FolderSearch1(fn)
' 引数に指定されたフォルダの情報を取得
Set subf = fso.GetFolder(fn)
' ファイル数と、サブフォルダ数の加算
TotalCountFile = TotalCountFile + subf.Files.Count
TotalCountFolder = TotalCountFolder + subf.Subfolders.Count
iTotalCountFile = subf.Files.Count
iTotalCountFolder = subf.Subfolders.Count
' 指定のフォルダに格納された各ファイルの処理
For Each FileName In subf.Files
TotalSize = TotalSize + FileName.Size
iTotalSize = iTotalSize + FileName.Size
Next
if iTotalCountFile = 0 then
iTotalSize = 0
end if
WScript.Echo "" & iTotalCountFolder & " " & iTotalCountFile & " " & iTotalSize & " SUB-TOTAL:" & fn
' 指定のフォルダに格納された各サブフォルダを処理する
For Each FolderName In subf.Subfolders
FolderSearch1(FolderName)
Next
End Sub
Sub FolderSearch2(fn)
' 引数に指定されたフォルダの情報を取得
Set subf = fso.GetFolder(fn)
' ファイル数と、サブフォルダ数の加算
TotalCountFile = TotalCountFile + subf.Files.Count
TotalCountFolder = TotalCountFolder + subf.Subfolders.Count
' 指定のフォルダに格納された各ファイルの処理
For Each FileName In subf.Files
TotalSize = TotalSize + FileName.Size
Next
' 指定のフォルダに格納された各サブフォルダを処理する
For Each FolderName In subf.Subfolders
FolderSearch2(FolderName)
Next
End Sub
' --< メインルーチン >----------------------------------------------------------
' オブジェクト定義
Set arg = WScript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
' カウンタクリア
TotalSize = 0
TotalCountFile = 0
TotalCountFolder = 0
' フォルダ探索開始
WScript.Echo now()
WScript.Echo "Directorys Files Size(b) Directory"
If arg.Count < 2 Then
FolderSearch2(arg(0))
else
FolderSearch1(arg(0))
end if
' 結果表示
WScript.Echo TotalCountFolder & " " & TotalCountFile & " " & TotalSize & " TOTAL:" & arg(0)
WScript.Echo now()