VBScript查找#个文件夹和文件(以及子文件夹!)
我跟随其他一些帖子编写了一个vbscript,它将计算/列出/移动/目录中的所有文件夹或文件,我有一些工作,但它有两个限制 1) 它没有返回正确的数字(至少与windows资源管理器不匹配)。也就是说,我搜索我的C:\并在windows explore停留时返回433个文件夹+10000(以及一个子文件夹C:\ windows,返回2234) 2) 即使我以管理员身份运行脚本,在访问不同位置的文件夹时也会出现权限错误 下面是一个简单的代码,当我测试较小的文件夹时,即使有许多子文件夹,它也会工作:VBScript查找#个文件夹和文件(以及子文件夹!),vbscript,filesystemobject,Vbscript,Filesystemobject,我跟随其他一些帖子编写了一个vbscript,它将计算/列出/移动/目录中的所有文件夹或文件,我有一些工作,但它有两个限制 1) 它没有返回正确的数字(至少与windows资源管理器不匹配)。也就是说,我搜索我的C:\并在windows explore停留时返回433个文件夹+10000(以及一个子文件夹C:\ windows,返回2234) 2) 即使我以管理员身份运行脚本,在访问不同位置的文件夹时也会出现权限错误 下面是一个简单的代码,当我测试较小的文件夹时,即使有许多子文件夹,它也会工作:
[Option Explicit
'on error resume next
Dim objFolder, objFSO, objSubFolder, iFolders
Set objFSO = CreateObject("Scripting.FileSystemObject")
iFolders = 0
Call CountFolders("C:\Windows")
Sub CountFolders(strPath)
Set objFolder = objFSO.GetFolder(strPath)
For Each objSubFolder In objFolder.SubFolders
iFolders = iFolders + 1
If Right(iFolders, 2) = "00" Then
IF MsgBox(iFolders & " folders found so far.", VBOKCancel) = 2 Then
Wscript.quit
End If
End If
Call CountFolders(objSubFolder.Path)
Next
End Sub
msgbox(iFolders)]
我是不是已经超出了文件系统对象的极限,而没有遇到其他问题
谢谢它必须是VBScript吗?Microsoft已经将VBScript抛在后面,任何新的脚本都应该使用PowerShell完成
在PowerShell中:
$everything = get-childitem -path c:\ -recurse -force;
$Foldercount = $everything|where-object{$_.psiscontainer}|measure-object |select-object -ExpandProperty count;
$Filecount = $everything|where-object{-not $_.psiscontainer}|measure-object |select-object -ExpandProperty count;
write-output "$Foldercount folders";
write-output "$Filecount files";
它的作用是:
- 收集C驱动器上的所有内容
- 计算文件夹中包含的项目数
- 计算有多少项不是文件夹中的
- 打印结果