人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBSの質問です
hoge フォルダの中に
hoge
|-01
|-02
|-03
|-04
|-・
|-・
|-・
と数字の連番の名前がついたフォルダが入っています
その各数字フォルダの中にa.htmlが入っています。

hogeの一つ上のフォルダに以下のテキストが入力されたhtmlファイルを作りたいのですがどのようなVBSを組めばいいでしょうか?教えてください

hoge.html
***************
http://hoge/01/a.html
http://hoge/02/a.html
http://hoge/03/a.html
http://hoge/04/a.html
http://hoge/・/a.html
http://hoge/・/a.html
***********
よろしくお願いします。

●質問者: fashudifhajs
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●500ポイント ベストアンサー

hoge フォルダにある全てのフォルダについて、その中にある a.html を探して、見つかったら URL をコンソールに出力します。

targetFolderName = "D:\test\hoge"  ' ※ hoge フォルダのパス

Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set targetFolder = fs.getFolder(targetFolderName)
For Each folder In targetFolder.SubFolders
 For Each f In folder.Files
 If f.Name = "a.html" Then
 WScript.Echo "http://" & targetFolder.Name & "/" & folder.Name & "/" & f.Name
 End If
 Next
Next

ファイルへの保存は、リダイレクトを使ってください。

d> cscript //Nologo hoge.vbs > list.html




追記です。

vbsファイルの中で保存先を指定して
vbsを実行するだけで指定先にhtmlファイルを保存するにはどうすればいいでしょうか?

以下のようにしてください。

targetFolderName = "D:\test\hoge"  ' ※ hoge フォルダのパス

Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set targetFolder = fs.getFolder(targetFolderName)
Set parentFolder = targetFolder.ParentFolder
Set output = fs.CreateTextFile(parentFolder.Path & "\list.html", True)

For Each folder In targetFolder.SubFolders
 For Each f In folder.Files
 If f.Name = "a.html" Then
 output.WriteLine "http://" & targetFolder.Name & "/" & folder.Name & "/" & f.Name
 End If
 Next
Next
output.Close

fashudifhajsさんのコメント
vbsファイルの中で保存先を指定して vbsを実行するだけで指定先にhtmlファイルを保存するにはどうすればいいでしょうか?

a-kuma3さんのコメント
回答に追記しました。

fashudifhajsさんのコメント
すみません その出力したテキストの前に ”アドレス一覧” 後ろに ”以上” という文字を入れたいのですが その場合どこを変更すればいいのでしょうか?

a-kuma3さんのコメント
こんな感じです。 >|vb| targetFolderName = "D:\test\hoge" ' ※ hoge フォルダのパス Set fs = WScript.CreateObject("Scripting.FileSystemObject") Set targetFolder = fs.getFolder(targetFolderName) Set parentFolder = targetFolder.ParentFolder Set output = fs.CreateTextFile(parentFolder.Path & "\list.html", True) output.WriteLine "アドレス一覧" For Each folder In targetFolder.SubFolders For Each f In folder.Files If f.Name = "a.html" Then output.WriteLine "http://" & targetFolder.Name & "/" & folder.Name & "/" & f.Name End If Next Next output.WriteLine "以上" output.Close ||<
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ