新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
allfiles.vbs如何實現(xiàn)顯示文件的詳情信息-創(chuàng)新互聯(lián)
allfiles.vbs 如何實現(xiàn)顯示文件的詳情信息?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
有的時候?qū)⒆幽夸浵碌乃形募男薷臅r間、大小、全限定名等信息導(dǎo)出到Excel表格中。
嘗試過命令行,但不太好用——
1.對于“dir /s >1.txt”,當(dāng)前目錄與文件列表是分開顯示的,合并起來太麻煩,而且沒有文件的全限定名。
2.對于“dir /b /s >1.txt”,只有全限定名,沒有修改時間、大小等詳細(xì)信息。
3.對于“tree /f >1.txt”,只有目錄樹,沒有修改時間、大小等詳細(xì)信息。
在網(wǎng)上找了幾個導(dǎo)出文件列表的工具,但都不太好用。于是決定自己編寫。
用什么編程工具開發(fā)呢?考慮到以后可能經(jīng)常改進(jìn)輸出內(nèi)容的格式,所以用VBScript腳本來寫是最方便的。
全部代碼如下——
' allfiles.vbs: 顯示子目錄下的所有文件的修改時間、大小、全限定名等信息。輸出文件版. ' Author: zyl910 ' Blog: /tupian/20230522/zyl910 ' URL: /tupian/20230522/zyl910/archive/2013/01/07/allfiles.html ' Version: V1.0 ' Updata: 2013-01-07 ' ' 輸出文件是“allfiles.txt”。格式: ' Type DateLastModified Size Base Ext FullName ' D 2013-1-1 12:30:30 Temp C:\Temp ' F 2013-1-1 12:30:31 34 abc txt C:\Temp\abc.txt ' ' Type: 類型。D目錄,F(xiàn)文件。 ' DateLastModified: 最后修改時間. ' Size: 文件大小. ' Base: 文件基本名. ' Ext: 擴展名. ' FullName: 文件的全限定名. ' 取得文件擴展名和基本名. Function GetFileExtAndBaseName(ByVal sfilename, ByRef sbasename) n = InStrRev(sfilename, ".") If n>1 Then GetFileExtAndBaseName = Mid(sfilename, n+1) sbasename = Left(sfilename, n-1) Else GetFileExtAndBaseName = "" sbasename = sfilename End If End Function ' 遍歷該目錄及子目錄. ' ' Result: 目錄和文件的總數(shù). ' fileOut: 輸出文件,用于輸出遍歷結(jié)果. ' fso: FileSystemObject對象. ' sPath: 目錄. Function dirscan(ByRef fileOut, ByVal fso, ByVal sPath) rt = 0 Set currentFolder = Nothing 'MsgBox sPath On Error Resume Next Set currentFolder = fso.GetFolder(sPath) On Error Goto 0 If Not (currentFolder Is Nothing) Then ' Folders For Each subFolder in currentFolder.SubFolders sfull = subFolder.Path & "\" ' 全限定名. s = "D" & vbTab & subFolder.DateLastModified & vbTab & "" & vbTab & subFolder.Name & vbTab & "" & vbTab & sfull & vbCrLf fileOut.write s rt = rt + 1 rt = rt + dirscan(fileOut, fso, subFolder.Path) Next ' Files For Each f in currentFolder.Files sbase = "" sext = GetFileExtAndBaseName(f.Name, sbase) ' 擴展名. sfull = f.Path ' 全限定名. s = "F" & vbTab & f.DateLastModified & vbTab & f.Size & vbTab & sbase & vbTab & sext & vbTab & sfull & vbCrLf fileOut.write s rt = rt + 1 Next End If dirscan = rt End Function '得到腳本文件所在的當(dāng)前目錄 Function GetCurrentFolderFullPath(fso) GetCurrentFolderFullPath = fso.GetParentFolderName(WScript.ScriptFullName) End Function ' 測試 Sub dotest Set fso = CreateObject("Scripting.FileSystemObject") strpath = GetCurrentFolderFullPath(fso) ' 得到當(dāng)前目錄. Set FileObj = fso.opentextfile(strpath+"\allfiles.txt", 2, True, -1) ' 打開輸出文件. ForWriting, TristateTrue. s = "Type" & vbTab & "DateLastModified" & vbTab & "Size" & vbTab & "Base" & vbTab & "Ext" & vbTab & "FullName" & vbCrLf ' 格式說明. FileObj.write s ' 寫入格式說明. cnt = dirscan(FileObj, fso, strpath) ' 遍歷目錄及子目錄. FileObj.Close ' 關(guān)閉輸出文件. MsgBox "OK! " & cnt & " items.", vbOKOnly, "allfiles" End Sub ' Run Call dotest()
分享文章:allfiles.vbs如何實現(xiàn)顯示文件的詳情信息-創(chuàng)新互聯(lián)
新聞來源:http://www.dlmjj.cn/article/disded.html