用VBscript取得每一層資料夾底下的儲存容量
檔案:CheckSpaceUsed.vbs
內容:
這是用來統計FTP使用者代號下每個人使用的空間,雖然都有劃分空間使用限制,但是可以用一個簡單程序稍微計算一下還是比較方便的,這個程序就使用VBS寫好,放在系統排程下每周執行一次,可以產生Csize.csv,然後用EXCEL來檢視,方便多了。
內容:
' 指定所有變數必須事先宣告才能使用
Option Explicit
'WScript.Echo("作業開始執行:" & Date & " " & Time)
' 宣告變數
Dim FSO, chkFolder, vbcrlf, logf
' == 開始 ==
vbcrlf = chrB(13) & chrB(10)
' 檔案所在之目錄
chkFolder = "C:\FTPROOT\UPLOAD"
' 建立檔案系統物件(File System Object)
Set FSO = CreateObject("Scripting.FileSystemObject")
' 建立紀錄檔案
Set logf = FSO.CreateTextFile("Csize.csv", True)
' 取得目錄層所有的資料夾,目錄層下的檔案不處理
FatchFolder FSO.GetFolder(chkFolder)
'關閉記錄檔
logf.Close
'取得清單子程序
Sub FatchFolder(path1)
Dim fid, xsize, bs, axx
'找出主資料夾下的資料夾清單
For Each fid In path1.SubFolders
bs = "B"
' 呼叫統計檔案大小的子程序
xsize = CalFilesInFolder(fid)
axx = fid.name & "," & Cstr(xsize)
'計算 BYTE單位(最多到MB即可)
If(xsize > 1024)then
xsize = CLng(xsize / 1024)
bs = "KB"
End If
If(xsize > 1024)then
xsize = CLng(xsize / 1024)
bs = "MB"
End If
'寫入紀錄檔
logf.WriteLine(axx & "," & xsize & bs)
'顯示在console畫面
WScript.Echo fid.name & " = " & xsize & bs
Next
End Sub
' 統計檔案的子程序
Function CalFilesInFolder(folder)
' 宣告變數
Dim file, subFolder,fsize,tfsize,dsize
tfsize = 0
dsize = 0
' 找出目前所在目錄內所有的檔案,並加總其大小
For Each file In folder.Files
fsize = file.Size
tfsize = tfsize + fsize
Next
' 如果遇到子目錄,也要進去檢查並計算
For Each subFolder in folder.SubFolders
dsize = dsize + CalFilesInFolder(subFolder)
Next
'合計本路徑下檔案大小與子資料夾內的大小並回傳
CalFilesInFolder = tfsize + dsize
End Function
' == 結束 ==
'WScript.Echo("作業執行完畢:" & Date & " " & Time)
這是用來統計FTP使用者代號下每個人使用的空間,雖然都有劃分空間使用限制,但是可以用一個簡單程序稍微計算一下還是比較方便的,這個程序就使用VBS寫好,放在系統排程下每周執行一次,可以產生Csize.csv,然後用EXCEL來檢視,方便多了。
留言