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()