VBスクリプトに関する再質問です。昨日、以下のハテナに対して、詳細なご回答をいただきました。


http://www.hatena.ne.jp/1086680518

ほぼ、私の希望とおりで、とても助かりました。しかし、質問の書き方が悪く、1点だけ、実現できていない機能があります。

実は、対象となるフォルダに対して、そのフォルダ配下にあるファイル群/ファイル群、全てのタイムスタンプを取得したかったのです。再帰的に階層をもぐっていく...と言うのでしょうか?

ご回答いただいたソースに対するアレンジでも構いませんし、別途、新規にスクリプトをご提示いただいてもOKです。ズバリのご回答を、お待ちしております。

すみませんが、以上、よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/06/09 10:09:16
  • 終了:--

回答(3件)

id:voyage_blog No.1

voyage_blog回答回数251ベストアンサー獲得回数12004/06/09 10:43:53

ポイント10pt

こんなんでもいいですかね?

cx20さんのにちょっと手入れています。

----

’ DirList.vbs

’ Usage : CScript //NoLogo DirList.vbs [dir]

’ Default [dir] = .

Dim fs, f, objArgs, str

Set fs = WScript.CreateObject(”Scripting.FileSystemObject”)

’引数が無ければカレントディレクトリ

’あれば第1引数からスキャンする

Set objArgs = WScript.Arguments

If objArgs.Count = 0 Then

str = ”.”

Else

str = objArgs(0)

End If

Set f = fs.GetFolder(str)

ScanFolder f ’フォルダ内の全てのフォルダについて処理する

Sub ScanFolder(f)

Dim subf

For Each subf In f.SubFolders

ScanFolder subf

Next

FileList(f)

End Sub

Sub FileList(folder)

Dim subFolder

For Each subFolder In folder.SubFolders

WScript.Echo _

subFolder.DateCreated & ” ” & _

subFolder.DateLastModified & ” ” & _

subFolder.DateLastAccessed & ” ” & _

”<DIR> ” & subFolder.Name

Next

Dim file

For Each file In folder.Files

WScript.Echo _

file.DateCreated & ” ” & _

file.DateLastModified & ” ” & _

file.DateLastAccessed & ” ” & _

file.Name

Next

end Sub

先の質問と同様に’や”は半角にしないといけませんが。

id:aki73ix No.2

aki73ix回答回数5224ベストアンサー獲得回数272004/06/09 10:17:28

ポイント10pt

http://www.atmarkit.co.jp/fwin2k/operation/command005/command01....

連載:Windows 2000コマンドライン徹底活用 第5回 スクリプト入門 (その3) -- 1.繰り返し処理

for /R %i in ( *.* ) do コマンド名 %i

でいいんじゃないでしょうか?(^^;

コマンド名に作ったScript名を入れればOKです

たとえば type を入れるとフォルダ内のファイルを再起的に出力します

id:Mugicha2004

ありがとうございます。試してませんが、この方法でも良さそうですね。

できれば、スクリプト1本にまとまっていると、うれしいです。そのようなソースを、期待しております。

2004/06/09 10:22:25
id:cx20 No.3

cx20回答回数607ベストアンサー獲得回数1082004/06/09 10:30:40

ポイント50pt

↑ソースを添付しておきました。

’ FileList2.vbs

’ Usage : CScript //NoLogo FileList2.vbs

Main

Sub Main

Dim fso

Set fso = CreateObject(”Scripting.FileSystemObject”)

Dim folder

Set folder = fso.GetFolder(”.”)

ShowFolder folder

End Sub

Sub ShowFolder( folder )

WScript.Echo folder.Path & ” のディレクトリ”

Dim subFolder

For Each subFolder In folder.SubFolders

WScript.Echo _

subFolder.DateCreated & ” ” & _

subFolder.DateLastModified & ” ” & _

subFolder.DateLastAccessed & ” ” & _

”<DIR> ” & subFolder.Name

Next

Dim file

For Each file In folder.Files

WScript.Echo _

file.DateCreated & ” ” & _

file.DateLastModified & ” ” & _

file.DateLastAccessed & ” ” & _

file.Name

Next

For Each subFolder In folder.SubFolders

ShowFolder subFolder

Next

End Sub

id:Mugicha2004

cx20さま、何度もすみません。ありがとうございます!!

これで、完全です。実験に取り掛かることができます。

また、同様の質問をハテナすることがあるかもしれません。その際も、よろしくお願いいたしますね(^^♪

2004/06/09 10:50:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません