ここから本文です

vbsを使用しフォルダ内のサブフォルダ数とファイル数を習得しテキストに出力という...

nwk********さん

2019/2/2010:13:44

vbsを使用しフォルダ内のサブフォルダ数とファイル数を習得しテキストに出力という物を作っています。
ただ¥¥localhost¥c$¥home1と設定すると中に保存されているフォルダを全て合計して出力してしま
います。
私の

理想は¥¥localhost¥c$¥home1内のフォルダを読み取りサブフォルダ数、ファイル数一つ一つテキストに出力して欲しいのです。home1¥01 何個 02 何個のようにするにはどうすれば良いのでしょうか?

下にコードを載せておきます。

Option Explicit
Public a, b, c, d, e, y, z
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Dim outputFile
Set outputFile = fso.OpenTextFile("outputText.txt", 2, True)

Set y = CreateObject("Scripting.FileSystemObject")
a = "D:\Progamming"
Set z = y.GetFolder(a)
b = z.Files.Count
c = z.SubFolders.Count
d = z.size
Call x
outputFile.WriteLine (b & vbCrLf & c & vbCrLf & d)

Sub x
For Each e In z.Subfolders
a = e.Path
Set z = y.GetFolder(a)
b = b + z.Files.Count
c = c + z.SubFolders.Count
d = d + z.Size
Call x
Next
End Sub

outputFile.Close

補足誰かお知恵をお貸しください

閲覧数:
115
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

lin********さん

2019/2/2012:27:07

これで合っているでしょうか?

たとえば、プログラムファイルを「D:\Programming」フォルダ内に置いたとき、そのサブフォルダ(そのまた下のサブフォルダは調べていません)ごとに、テキストファイルを作成し、そのサブフォルダ内のファイル数を書き込んでいます。

たとえば、「D:\Programming」フォルダ内に「a」、「b」、「c」というサブフォルダが存在するとすると、「D:\Programming」内に「a.txt」、「b.txt」、「c.txt」というファイルを作成し、その中に「6」とか「24」とか「15」とか入ります。

Option Explicit
Dim f, gf, so, tx
Set so = CreateObject("Scripting.FileSystemObject")
Set gf = so.GetFolder(so.GetParentFolderName(WScript.ScriptFullName))
For Each f In gf.SubFolders
Set tx = so.OpenTextFile(gf & "\" & f.Name & ".txt", 2, True)
tx.Write f.Files.Count
tx.Close
Set tx = Nothing
Next
Set so = Nothing
MsgBox("Finished!")

  • 質問者

    nwk********さん

    2019/2/2013:28:43

    回答ありがとうございます。
    考え方としては間違ってはないのですが、
    対象のフォルダにプログラムファイルを置くことは出来ませんので遠隔でdosコマンドから実行することを想定しています

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる