VBScript でフォルダ内ファイル一覧のファイル出力
こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。
この記事の目次
関数
ソースコード
'-------------------------------------------------------------------------------------------------------
' 引数が無かった時の処理
If WScript.Arguments.count = 0 then
WScript.Echo "引数が無いため、実行できません。" & vbNewLine & _
"フォルダをドロップしてください。"
WScript.Quit
end If
'-------------------------------------------------------------------------------------------------------
' ファイル入出力用の変数
ForReading = 1
ForWriting = 2
ForAppending = 3
'-------------------------------------------------------------------------------------------------------
' フォルダ内ファイルリスト出力
for each args In WScript.Arguments
'----------------------------------------------------------------------------------------------------
' ファイルシステムオブジェクト作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
'----------------------------------------------------------------------------------------------------
' ドロップされた引数がフォルダかファイルかを判定する
If objFileSys.FolderExists(args) then
' is folder.
ElseIf objFileSys.FileExists(args) then
' is file.
WScript.Echo "ファイルがドロップされました。" & vbNewLine & _
"処理を終了します。"
WScript.Quit
else
' is unknown.
WScript.Echo "フォルダ 及び ファイル とも認識できないデータがドロップされました。" & vbNewLine & _
"処理を終了します。"
WScript.Quit
End If
'----------------------------------------------------------------------------------------------------
' ドロップされたフォルダのオブジェクト取得
Set objFolder = objFileSys.GetFolder(args)
'----------------------------------------------------------------------------------------------------
' ファイルが見つからなかった場合、プログラムを終了する
If objFolder.Files.Count = 0 then
WScript.Echo "ファイルは見つかりませんでした。"
WScript.Quit
End If
'----------------------------------------------------------------------------------------------------
' 出力ファイルパスの作成
pos = InstrRev(args, "\")
InputFolderName = Mid(args, pos + 1)
PathOutput = Left(args, pos) & "\" & InputFolderName & "-FileList" & ".csv"
'----------------------------------------------------------------------------------------------------
' テキストファイルを開く
Set fileWriter = objFileSys.OpenTextFile(PathOutput, ForWriting, True)
'----------------------------------------------------------------------------------------------------
' 出力
for each f In objFolder.Files
fileWriter.WriteLine f.Name
next
'----------------------------------------------------------------------------------------------------
' テキストを閉じる
fileWriter.Close
'----------------------------------------------------------------------------------------------------
' ドロップされたフォルダのオブジェクトの破棄
Set objFolder = Nothing
'----------------------------------------------------------------------------------------------------
' ファイルシステムオブジェクトの破棄
Set objFileSys = Nothing
'----------------------------------------------------------------------------------------------------
' 作成したファイルリストを開く
Set objWsh = WScript.CreateObject("WScript.Shell")
objWsh.Run PathOutput
Set objWsh = Nothing
next
使い方
上のソースコードをメモ帳にコピペして、拡張子を『.vbs』にして、すべてのファイルとして保存すれば、ドロップしたフォルダの中のファイルを CSV のリストに出力するプログラムが出来ます。CSV のファイルリストはドロップしたフォルダと同じ場所に作成されます。
デスクトップに置いておくと意外と便利です。
コメント
この記事では CSV ファイルを作成していますが、テキストファイル、 Microsoft Word ファイル、 Microsoft Excel ファイルなどに出力するといろいろな使い道がありそうです。
以上