フォルダ内のファイルリストを一発で出力だぜぃ


作業でどうしてもフォルダ内のファイルリストを作成しないといけなくて
またVBSで一発KOを試みた。

とりあえず、
前にcmd上でってのは書いたと思うんだけど、、、
あ、これこれ・・・2009年のエントリだったww
こまんどぷろんぷと(フォルダ名とか取得)
これでもテキストで出せるんだけど、
いちいちcmd呼びだす時のタイムラグをなくしたいってゆうのと、
理想はポイッってやるだけでtxtファイルができあがるってので、
ちょこちょこ作ってみました。

なんか、ファイルリスト作るフリーソフトとかいっぱいあるけど、

いちいちダウンロードしてインストールして・・・とかが面倒なのと、
かゆい所に手が届かないのが多いってことで。

今回の仕様としては、
フォルダをVBSファイルにドラッグするだけで、
ルートからのフォルダの中身のファイルパスを出力。

てことで、まともに書くの2回目とかのVBScript( ´艸`)

Option Explicit
'出力先指定(今回はデスクトップにFileList.txtを出力させるってことで)
Const LIST_FILE = "C:UsersProloGraphyDesktopFileList.txt"
'オブジェクトとファイルの変数宣言
Dim obj
Dim fso
Dim txt
Dim reg
'オブジェクト生成
Set obj = WScript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
'すでにファイルがあったらファイルの削除
If fso.FileExists(LIST_FILE) Then
  Call fso.DeleteFile(LIST_FILE)
End If
'出力ファイルのセット
Set txt = fso.OpenTextFile(LIST_FILE, 8, True, 0)
'メイン関数呼び出し
Call MainProc(obj)
'ログファイルクローズ
txt.Close
'オブジェクトあぼーん
Set txt = Nothing
Set fso = Nothing
Set obj = Nothing
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
'メイン関数
'*-*-*-*-*-*-*-*-*
Sub MainProc(arg)
  Dim param
  'パラメータをループさせてフォルダチェック
  For Each param in arg
    If fso.FolderExists(param) Then
       'リスト作成関数呼び出し
          Call CreateFileList(param)
       End If
  Next
End Sub
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
'リスト作成関数
'*-*-*-*-*-*-*-*-*
Sub CreateFileList(inFolderName)
  Dim fsoFolder
  Dim fsoSubFolder
  Dim fsoFile
  Dim strText
  Dim strNewText  
  'フォルダ取得
  Set fsoFolder = fso.GetFolder(inFolderName)
  '正規表現用記述
  Set reg = new RegExp
  reg.pattern = "\"
  reg.Global = true    
  'フォルダ内/ファイルループ
  For Each fsoFile In fsoFolder.Files
  	'文字列「」を「/(スラッシュ)」に置換
  	strText = fsoFile.Path
  	strNewText = reg.Replace(strText, "/")
    'ログに出力
    txt.WriteLine strNewText
  Next  
  'フォルダ内ループ
  For Each fsoSubFolder In fsoFolder.SubFolders
    'サブフォルダでリスト作成呼び出し
    Call CreateFileList(fsoSubFolder)
  Next  
End Sub

最初はどうしても「(バックスラッシュ)」のままになっちゃって、
あとからエディタでちまちま「/(スラッシュ)」に置換しないといけない感じになったんだけど、
めんどくさいから一気に置換もしてくれたらうれしいなぁ~(。-∀-)ニヒ♪

ってことで、正規表現で置換させるVBSをグーグル先生で聞いたら、
RedM Studioさんの昔のブログに正規表現の置換方法が書いてあったので参考にさせていただきまして。

これを「.vbs」で保存して、、、、動いたぁぁぁぁあああああああ!!

これでまたひとつ作業の効率化とかがはかれますな(ノω`)

Posted in Other by prolography at 8月 4th, 2010 .
Tags: , ,
海外現地オプショナルツアーなら【VELTRA(ベルトラ)】
ケンコーコム