- PR -

VBSであるフォルダの以下特定のファイルを全て参照する方法

投稿者投稿内容
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-09 14:04
いつもお世話にあなっております。

現在VBSファイルを作成しています。
VBSファイルの処理はあるフォルダ内の下位にある.txtのファイルを全て削除する
ことです。

あるフォルダ以下に全てのファイルを参照したいのですが
サブフォルダもあるためどのように記述してよいか分かりません。

ご存知の型がいらっしゃいましたらご教授よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-09 14:21
引用:

ポンさんの書き込み (2006-11-09 14:04) より:

あるフォルダ以下に全てのファイルを参照したいのですが
サブフォルダもあるためどのように記述してよいか分かりません。


再帰呼び出しを使えば良いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-09 14:31
じゃんぬねっとさん回答ありがとうございます。

>再帰呼び出しを使えば良いです。

とは・・・どういったことでしょうか・・・
よろしければもう少し詳しくご教授いただけると幸いです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-09 14:41
引用:

ポンさんの書き込み (2006-11-09 14:31) より:

とは・・・どういったことでしょうか・・・
よろしければもう少し詳しくご教授いただけると幸いです。


Google で検索しましょう。(すぐにヒットします)

たとえば、MyDeleteFile 関数の中で MyDeleteFile 関数を呼び出すことです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2006-11-09 14:53
http://www.microsoft.com/japan/technet/scriptcenter/scripts/storage/folders/stfovb10.mspx

モロに答えを教えるのもどうかとは思うが、
丸写しもちゃんと理解すれば次から実力に転化するので、
ズバリの答えを上記からどうぞ。
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-09 14:57
じゃんぬねっとさんご回答ありがとうございます。

>Google で検索しましょう。(すぐにヒットします)
>たとえば、MyDeleteFile 関数の中で MyDeleteFile 関数を呼び出すことです。

調べてみたところすぐにヒットし考えてみたのですが・・・
申し訳ございません理解力がないのかさっぱりです・・・

'====================イメージファルダ内のdbファイル削除処理==================

'ファイルシステムオブジェクトを作成
Set Lo_objFileSys = CreateObject("Scripting.FileSystemObject")

'フォルダ内の名前全部取得
Set Lo_objFileSys = Lo_objFileSys.GetFolder("C:\DelFile")

'フォルダ名を全部回すところ
For Each objwk in Lo_objFileSys.SubFolders
Sp_Log(objWK.Path)

If objWK.Path <> "" Then
'ファイルシステムオブジェクトの作成
 Set Lo_objFile = CreateObject("Scripting.FileSystemObject")

'オブジェクトの開放
Set Lo_objFile = Nothing
Else
End If
Next

'ファイル名を全部回す
For Each objWK_T in Lo_objFileSys.Files
Sp_Log(objWK_T.Path)
'ファイルに"db"があるかないかをチェック
If InStr(objWK_T.Path,".txt") > 0 then
'ファイルの削除を行います
Lo_objFileSys.DeleteFile objWK_T.Path
Else
End If
Next

'オブジェクトの開放
Set Lo_objFileSys = Nothing

'=============================================================================

今作成段階でこんな感じです。
手探り手探りでやっております。

何かお気づきの点がありましたらご教授よろしくお願いします
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2006-11-09 15:45
まずは再帰構文のおべんきょからはじめましょう。
http://karetta.jp/book/cpuzzle-recursion

#C言語だけど、まあ何とかなるでしょう。
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-11-09 16:01
platiniさんご回答ありがとうございます。投稿が入れ違ったようで返信が遅れておりました。申し訳ございません。

参考HPを見まして作成してみました

'ファイルオブジェクトを作成
Set Lo_objFileSys = CreateObject("Scripting.FileSystemObject")
'フォルダ内の名前取得
Set Lo_objFileSys = Lo_objFileSys.GetFolder("C:\DelFile")

ShowSubFolders(Lo_objFileSys)

'サブプロシージャーで再帰使用?
Sub ShowSubFolders(Folder)
  Lt_Msg="ファイルが存在しません。"
  Sp_Log( Lt_Msg )
'取得したフォルダーのサブフォルダーを検索
For Each objWK_T in Folder.SubFolders

  'ファイルシステムオブジェクトの作成
Set Lo_objFileSys_File = CreateObject("Scripting.FileSystemObject")
'フォルダ内の名前取得
Set Lo_objFile_File = Lo_objFileSys_File.GetFolder(objWK_T.Path)

'ファイル名を全部回す
For Each objTT in Lo_objFile_File.Files
  'ファイル名に"db"があるかないかをチェック
   If InStr(objTT.Path,".db") > 0 then
       'ファイルの削除を行います
     Lo_objFile_File.DeleteFile objTT.Path
   Else
   End If
    Next

'オブジェクトの開放
Set Lo_objFileSys_File = Nothing
Set Lo_objFile_File = Nothing
'????
Wscript.Echo objWK_T.Path
'再帰呼び出し?
ShowSubFolders(objWK_T)
Next
End Sub

と作成してみたのですがうまく動作はしません・・・
色々試行錯誤中でございます。何かご教授いただければ幸いです。
宜しくお願い致します。

かずくんさんご回答ありがとうございます。

VBSでの作成が今回初めてで今日中に作成しなければならないので・・・
すみませんだいぶ焦っている状態です・・・
完成後参考HPを読みもう一度勉強しなおしたいと思っております

スキルアップ/キャリアアップ(JOB@IT)