vbs 列出该目录下所有文件和文件夹的类型,大小,和所有者_vbs教程-查字典教程网
vbs 列出该目录下所有文件和文件夹的类型,大小,和所有者
vbs 列出该目录下所有文件和文件夹的类型,大小,和所有者
发布时间:2016-12-28 来源:查字典编辑
摘要:GetOwner.VBS用法,在命令行下:GetOwner.vbs目录名会在相应目录下生成一个TXT.TXT文件,内里列出该目录下所有文件和...

GetOwner.VBS用法,在命令行下:GetOwner.vbs 目录名会在相应目录下生成一个TXT.TXT文件,内里列出该目录下所有文件和文件夹的类型,大小,和所有者

注意:大小以MB为单位,小于1MB的就显示为0MB,

以下是代码:

G = WScript.arguments(0)

Set oFSO = CreateObject("Scripting.FileSystemObject")

set txt = oFSO.CreateTextFile(G&"TXT.txt",true) '嘿嘿,如果这个目录下刚好有一个TXT.txt文件,那就算你倒霉,

不会有人真用这种名字来做文件名吧?真的啊,真的有啊?那你

换地方吧~~~C: TXT.TXT应该不会有了吧?

set objWMI = GetObject("winmgmts:")

Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"&G&"'}" & "where ResultClass =

CIM_logicalfile")

For Each oFile In oFiles

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( oFile.name)

txt.WriteLine( "Type: " & oFile.FileType)

if oFile.name = G&"system volume information" then

exit for

end if

if oFile.FileType="File Folder" then

Set objFolder = oFSO.GetFolder(oFile.name)

txt.WriteLine("Size: " & Cint(objFolder.Size/1024/1024) &"MB")

else

txt.WriteLine( "Size: " & cint(oFile.FileSize/1024/1024) &"MB")

end if

strFile = oFile.name

strComputer = "."

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!" & strComputer &

"rootcimv2")

Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" & strFile

& "'}" & " WHERE

AssocClass=Win32_LogicalFileOwner ResultRole=Owner")

For Each objItem in colItems

if oFile.name = "system volume information" then

exit for

end if

txt.WriteLine( "FileOwner: " & objItem.AccountName)

Next

Next

统计某用户在某目录下的文件和文件夹使用方法:

脚本名 目录名 用户名

如:

owner.vbs d: lsj

结果是在相应目录下生成一个文本文件

格式如下:

--------------------------------------------------------------

d:jcb-gx

Type: File Folder

Size: 22MB

--------------------------------------------------------------

d:powerword 2003.rar

Type: WinRAR 档案文件

Size: 503MB

--------------------------------------------------------------

d:txt.txt

Type: Text Document

Size: 0MB

--------------------------------------------------------------

d:年 度 考 核 登 记 表2006版061225.doc

Type: Microsoft Word 文档

Size: 0MB

--------------------------------------------------------------

--------------------------------------------------------------

--------------------------------------------------------------

The TotalSize of All files lsj owns is: 525MB

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以下为脚本代码:

TotalSize = 0

G = WScript.arguments(0)

H = WScript.arguments(1)

Set oFSO = CreateObject("Scripting.FileSystemObject")

set txt = oFSO.CreateTextFile(G&"TXT.txt",true)

set objWMI = GetObject("winmgmts:")

Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"&G&"'}" & "where ResultClass =

CIM_logicalfile")

For Each oFile In oFiles

strFile = oFile.name

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!.rootcimv2")

Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" & strFile

& "'}" & " WHERE

AssocClass=Win32_LogicalFileOwner ResultRole=Owner")

For Each objItem in colItems

if objItem.AccountName = H then

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( oFile.name)

txt.WriteLine( "Type: " & oFile.FileType)

if oFile.name = G&"system volume information" then

exit for

end if

S = 0

if oFile.FileType="File Folder" then

Set objFolder = oFSO.GetFolder(oFile.name)

S= Cint(objFolder.Size/1024/1024)

else

S= Cint(oFile.FileSize/1024/1024)

end if

txt.WriteLine( "Size: " & S &"MB")

TotalSize = TotalSize + S

end if

Next

Next

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( "The TotalSize of All files "&H&" owns is: " & TotalSize &"MB")

更新后:

4.0版

使用方法:

脚本名 目录名

脚本会在相应目录下生成几个与本机用户对应的TXT文件,每个文件列出相应用户所有文件和文件夹的类型大小,并在最

后合总计算所有文件和文件夹的大小

以下是代码:

TotalSize = 0

G = WScript.arguments(0)

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set objWMI = GetObject("winmgmts:")

Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"&G&"'}" & "where ResultClass =

CIM_logicalfile")

Set objNetwork = CreateObject("Wscript.Network")

strComputer = objNetwork.ComputerName

Set colAccounts = GetObject("WinNT://" & strComputer & "")

colAccounts.Filter = Array("user")

For Each objUser In colAccounts

H = objUser.Name

A = G & objUser.Name & "txt.txt"

Set txt = oFSO.CreateTextFile (A,true)

For Each oFile In oFiles

strFile = oFile.name

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!.rootcimv2")

Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" & strFile

& "'}" & " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")

For Each objItem in colItems

if objItem.AccountName = H then

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( oFile.name)

txt.WriteLine( "Type: " & oFile.FileType)

if oFile.name = G&"system volume information" then

exit for

end if

S = 0

if oFile.FileType="File Folder" then

Set objFolder = oFSO.GetFolder(oFile.name)

S= Cint(objFolder.Size/1024/1024)

else

S= Cint(oFile.FileSize/1024/1024)

end if

txt.WriteLine( "Size: " & S &"MB")

TotalSize = TotalSize + S

end if

Next

Next

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( "--------------------------------------------------------------")

txt.WriteLine( "The TotalSize of All files "&H&" owns is: " & TotalSize &"MB")

Next

再次更新后:

4.1版

用法同前

脚本名 目录名

在目录名下生成一个文件,按用户次序输出所有用户在该目录中的文件信息,格式如下:

--------------------------------------------------------------

The TotalSize of All files Administrator owns is: 0MB

--------------------------------------------------------------

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

--------------------------------------------------------------

The TotalSize of All files Guest owns is: 0MB

--------------------------------------------------------------

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

--------------------------------------------------------------

The TotalSize of All files HelpAssistant owns is: 0MB

--------------------------------------------------------------

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

--------------------------------------------------------------

d:powerword 2003.rar

Type: WinRAR 档案文件

Size: 503MB

--------------------------------------------------------------

d:年 度 考 核 登 记 表2006版061225.doc

Type: Microsoft Word 文档

Size: 0MB

--------------------------------------------------------------

d:jcb-gx

Type: File Folder

Size: 22MB

--------------------------------------------------------------

The TotalSize of All files lsj owns is: 525MB

--------------------------------------------------------------

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

--------------------------------------------------------------

The TotalSize of All files SUPPORT_388945a0 owns is: 0MB

--------------------------------------------------------------

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

以下是代码:

G = WScript.arguments(0)

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set objWMI = GetObject("winmgmts:")

Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"&G&"'}" & "where ResultClass =

CIM_logicalfile")

Set objNetwork = CreateObject("Wscript.Network")

strComputer = objNetwork.ComputerName

Set colAccounts = GetObject("WinNT://" & strComputer & "")

colAccounts.Filter = Array("user")

For Each objUser In colAccounts

TotalSize = 0

H = objUser.Name

Set TXT = oFSO.OpenTextFile(G&"TXT.TXT",8,true)

For Each oFile In oFiles

strFile = oFile.name

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!.rootcimv2")

Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" & strFile

& "'}" & " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")

For Each objItem in colItems

if objItem.AccountName = H then

TXT.WriteLine( "--------------------------------------------------------------")

TXT.WriteLine( oFile.name)

TXT.WriteLine( "Type: " & oFile.FileType)

if oFile.name = G&"system volume information" then

exit for

end if

S = 0

if oFile.FileType="File Folder" then

Set objFolder = oFSO.GetFolder(oFile.name)

S= Cint(objFolder.Size/1024/1024)

else

S= Cint(oFile.FileSize/1024/1024)

end if

TXT.WriteLine( "Size: " & S &"MB")

TotalSize = TotalSize + S

end if

Next

Next

TXT.WriteLine( "--------------------------------------------------------------")

TXT.WriteLine( "The TotalSize of All files "&H&" owns is: " & TotalSize &"MB")

TXT.WriteLine( "--------------------------------------------------------------")

TXT.WriteLine( "※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※")

TXT.Close

Next

MsgBox "文件列表信息已成功输出至TXT.TXT文件",64,"OK"

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新vbs学习
    热门vbs学习
    脚本专栏子分类