SQLの窓 イラストAC フリー素材

2014年02月25日

VBScript : ディレクトリ内のディレクトリで使用している容量一覧

▼ このように実行されます
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

C:\adt\sdk

          0.000 M : add-ons
          0.000 M : build-tools
          2.419 M : extras
          4.048 M : platform-tools
         73.800 M : platforms
        219.770 M : system-images
          0.000 M : temp
        141.507 M : tools

        442.262 M : 合計
          0.715 M : C:\adt\sdk のみのサイズ

続行するには何かキーを押してください . . .
Set WshShell = CreateObject( "WScript.Shell" )
Set Shell = CreateObject( "Shell.Application" )
Set Fso = CreateObject( "Scripting.FileSystemObject" )

' Cscript の pause 付きで実行
if Wscript.Arguments.Count = 0 then
	Call WshShell.Run( "cmd.exe /c cscript.exe " & Dd(WScript.ScriptFullName) & " next" & " & pause", 3 )
	Wscript.Quit
end if

Dim target

' **********************************************************
' 対象ディレクトリ
' **********************************************************
target = SelectDir( "対象フォルダを選択して下さい" )
if target = "" then
	Wscript.Quit
end if

Wscript.Echo target
Wscript.Echo

' **********************************************************
' フォルダオブジェクト取得
' **********************************************************
Set objFolder =  Fso.GetFolder(target)

' **********************************************************
' サブフォルダコレクション取得
' **********************************************************
Set colSubFolder =  objFolder.SubFolders

' **********************************************************
' 一覧
' **********************************************************
Dim TargetSize : TargetSize = 0
For Each obj in colSubFolder

	on error resume next
	Wscript.Echo Lpad(FormatNumber((Fix(obj.Size / 1000) / 1000),3)," ", 15) & " M : " & obj.Name
	if Err.Number <> 0 then
		Wscript.Echo "( " & obj.Name & " : 処理できません )"
	end if
	TargetSize = TargetSize + obj.Size
	on error goto 0


Next

Wscript.Echo

Dim AllSize
on error resume next
AllSize = objFolder.Size
if Err.Number <> 0 then
	AllSize	= TargetSize
end if
on error goto 0


Wscript.Echo Lpad(FormatNumber((Fix(AllSize / 1000) / 1000),3)," ", 15) & " M : " & "合計"
Wscript.Echo Lpad(FormatNumber((Fix((AllSize-TargetSize) / 1000) / 1000),3)," ", 15) & " M : " & target & " のみのサイズ"

Wscript.Echo

' **********************************************************
' ディレクトリ選択
' **********************************************************
Function SelectDir( strTitle )

	Dim obj

	Set obj = Shell.BrowseForFolder( 0, strTitle, &H4B, 0 )
	if obj is nothing then
		SelectDir = ""
		Exit Function
	end if
	if not obj.Self.IsFileSystem then
		ErrorMessage = "ファイルシステムではありません"
		SelectDir = ""
		Exit Function
	end if

	SelectDir = obj.Self.Path

End Function

' **********************************************************
' ダブルクォートで囲む
' **********************************************************
Function Dd( strValue )

	Dd = """" & strValue & """"

End function

' **********************************************************
' 指定数、指定文字列左側を埋める
' **********************************************************
Function Lpad( strValue, str, nLen )

	Lpad = Right( String(nLen,str) & strValue, nLen )

End Function

Windows の都合で読み込めないフォルダむはメッセージを表示して読み飛ばしています。その場合、合計に反映されないのてで注意して下さい


【VBScriptの最新記事】
posted by at 2014-02-25 16:53 | VBScript | このブログの読者になる | 更新情報をチェックする


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX