- 目的:通过vbscript生成磁盘目录和文档的清单,写入到excel中保存
- 途径: 通过wscript的Excel.Application对象和Scripting.FileSystemObject对象
- 函数:
a. writexls写入excel内容
b. listfiles遍历所有文件
c. listsubdir列出所有的子目录并且遍历迭代 - 注意事项:
a. 获取当前目录:createobject(“Scripting.FileSystemObject”).GetFolder(“.”).Path
b.注意释放内存
代码路径:https://github.com/clark99/Program_differ/tree/master/vb_list_ftpfiles
dim xlsApp
dim xlsWorkBook
dim xlsSheet
dim fileapp
dim folderdir
dim folderobject
dim subfolderobject
dim filename
dim subdirpath
dim i
dim clumns
dim rows
clumns=1
rows=1
'wscriptExcel 对象
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
xlsApp.DisplayAlerts=False
'msgbox xlsApp.DisplayStatusBar
'createobject("Scripting.FileSystemObject").GetFolder(".").Path
scriptpath = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path
filename=scriptpath&"\filelist.xlsx"
set xlsWorkBook=xlsApp.Workbooks.open(filename)
set xlsSheet=xlsWorkBook.sheets(1)
xlsSheet.Activate
'wscript 文件系统对象
Set fileapp=CreateObject("Scripting.FileSystemObject")
folderdir=InputBox("input the dirpath for list,for example E:", MsgTitle)
'folderdir="E:"
Public Sub writexls(rows,clumns,value)
xlsSheet.Cells(rows,clumns).value=value
xlsWorkBook.Save
End Sub
Public Sub listfiles(folderdir)
'folder对象,Subfolder对象
clumns=coumns+1
Set folderobject=fileapp.GetFolder(folderdir)
'当前目录的文档
for each i in folderobject.files
rows=rows+1
call writexls(rows,clumns,folderdir)
call writexls(rows,clumns+1,i.name)
On Error Resume Next
next '结束遍历所有excel文件
End Sub
Public Sub listsubdir(folderdir)
call listfiles(folderdir)
Set folderobject=fileapp.GetFolder(folderdir)
Set subfolderobject=folderobject.SubFolders
'子目录处理
for each subdirpath in subfolderobject
call listsubdir(subdirpath)
On Error Resume Next
next '结束遍历所有子目录
End Sub
Call listsubdir(folderdir)
xlsWorkBook.Close
xlsApp.Quit
Set xlsSheet=Nothing '释放内存
Set xlscon=Nothing '释放内存
Set xlsWorkBook = Nothing '释放内存
Set xlsApp = Nothing '释放Excel对象
Set subfolderobject=Nothing '释放内存
Set folderobject=Nothing '释放内存
Set fileapp=Nothing '释放内存
支持原创
微信公众号:clark_blog
博客:blog.csdn.net/clark_xu
代码:https://github.com/clark99