はじめに
指定したフォルダ配下のファイル一覧をCSV出力するvbscript作りました。
使い方
ソースプログラムをFileListCreator.vbsという名前で保存します。
cscript FileListCreator.vbs
引数を省略すると、カレントフォルダの配下を探索します。
または
cscript FileListCreator.vbs "C:\Users"
Option Explicit Call Main() Sub Main() Dim out Dim folderPath Dim fso Dim ts Dim isWS Dim ws ' 規定のスクリプトホストがWscriptなら、Cscriptに変更する isWS = IsWScript() If isWS Then Set ws = WScript.CreateObject( "WScript.Shell" ) Call ws.Run("cscript.exe /H:Cscript", 0, True) End If ' パラメタを取得 If Wscript.Arguments.Count = 0 Then folderPath = "." Else folderPath = Wscript.Arguments(0) End If Set fso = CreateObject("Scripting.FileSystemObject") ' タイトル行 out = "ファイルパス,ファイル名,拡張子,最終更新日時,作成日時,ファイルサイズ(byte),ファイルタイプ" & vbNewLine ' サブフォルダに対して、再帰的に処理する out = out & ShowSubfolders(fso, fso.GetFolder(folderPath)) Dim wkNow wkNow= Year(Now()) wkNow= wkNow & Right("0" & Month(Now()) , 2) wkNow= wkNow & Right("0" & Day(Now()) , 2) wkNow= wkNow & "_" wkNow= wkNow & Right("0" & Hour(Now()) , 2) wkNow= wkNow & Right("0" & Minute(Now()) , 2) wkNow= wkNow & Right("0" & Second(Now()) , 2) ' 検索結果をファイルに出力 Dim csvFileName csvFileName = "C:\FileListCreator_" & wkNow & ".csv" Set ts = fso.CreateTextFile(csvFileName) ts.WriteLine(out) ts.close WScript.Echo csvFileName & "に出力しました。" ' 規定のスクリプトホストを元に戻す If isWS Then Call ws.Run("cscript.exe /H:Wscript", 0, True) End If End Sub ' 規定のスクリプトホストがWscriptかどうかを調べる Function IsWScript() Dim registoryValue Dim ws IsWScript = False ' レジストリの読み込み Set ws = WScript.CreateObject( "WScript.Shell" ) registoryValue = ws.RegRead("HKLM\SOFTWARE\Classes\VBSFile\Shell\Open\Command\") ' 規定のスクリプトホストがWscriptの場合 If InStr(1, registoryValue, "WSCRIPT", 1) > 0 Then IsWScript = True End If End Function ' サブティレクト内のファイル一覧を取得する Function ShowSubFolders(fso, folder) Dim file Dim returnValue Dim Subfolder Dim tmp returnValue = "" tmp = folder.DateLastModified & vbTab & "<DIR>" & vbTab & vbTab & folder.name WScript.Echo tmp For Each file in folder.Files tmp = file.ParentFolder & _ "," & _ file.Name & _ "," & _ fso.GetExtensionName(file.path) & _ "," & _ file.DateLastModified & _ "," & _ file.DateCreated & _ "," & _ file.Size & _ "," & _ file.Type 'WScript.Echo tmp returnValue = returnValue & tmp & vbNewLine Next ' folder配下のフォルダを列挙する For Each Subfolder in folder.SubFolders ' 再帰呼び出し returnValue = returnValue & ShowSubFolders(fso, Subfolder) Next ShowSubFolders = returnValue End Function
出力例
ファイルパス,ファイル名,拡張子,最終更新日時,作成日時,ファイルサイズ(byte),ファイルタイプ C:\Program Files\Microsoft Visual Studio 11.0\VC\bin\1041,localespcui.dll,dll,2012/07/06 12:57:00,2012/07/06 12:57:00,43304,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\bin\amd64\1041,localespcui.dll,dll,2013/07/22 15:14:04,2013/07/22 15:14:04,49960,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\1041,bscmakeui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,21584,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\1041,clui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,332872,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\1041,cvtresui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,20048,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\1041,linkui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,67144,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\1041,mspft110ui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,63064,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\1041,nmakeui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,25160,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\1041,vcomp110ui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,20056,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\ja,xdcmake.resources.dll,dll,2013/06/10 1:52:06,2013/06/10 1:52:06,25712,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\x86_amd64\1041,clui.dll,dll,2013/06/10 1:52:06,2013/06/10 1:52:06,332864,アプリケーション拡張 C:\Program Files\Microsoft Visual Studio 11.0\VC\WPSDK\WP80\bin\x86_amd64\1041,linkui.dll,dll,2013/06/10 1:52:04,2013/06/10 1:52:04,67144,アプリケーション拡張