プロが教えるわが家の防犯対策術!

VBS初心者ですが、上司に依頼されて、次の目的のVBSを
作成することとなりましたので、皆様の知恵をお貸し下さい。

1、業務サーバー内に50前後のフォルダが存在する。
2、そのサーバ内のフォルダ名とサイズ(MB表示)を取得する。
3、最終的には、取得したフォルダ名とサイズをcsvで出力する。

現在は、月一でサーバー内の各フォルダのプロパティからサイズを取得して、
エクセルで管理をしているのですが、毎月のようにフォルダが10個単位で増減しているため、
作業に取られる時間が馬鹿にならないので、VBSにて一覧取得をできないか
と相談されました。
私のスキルでは、各フォルダ毎のファイル名とサイズを取得することは
出来るのですが、出来れば、一度の操作で全部の作業を終わらせたいので、
皆様のお力をお貸し下さい。

A 回答 (3件)

追伸。


http://www.vector.co.jp/soft/cmt/win95/util/se03 …
↑社内でフリーウェアの使用が認められていれば、このようなソフトは?
上記リンクは適当なフォルダに解凍して実行ファイルを開けば即座に実行されますし
(インストール不要なのでFDに入れておいて他PCでの作業も簡単)
ネットワーク対応、CSV出力対応なので楽チンです (^^ゞ
    • good
    • 1
この回答へのお礼

社用の閉鎖環境のため、フリーウェアの使用が出来ないのですが、前回のご回答から、自分なりにソースをくみ直し、意図する動作を一応形作ることが出来、上司からOKを頂きましたことをお礼とともにご報告させて頂きます。

お礼日時:2007/03/18 23:29

こんな感じ?Excel VBAです。


chkDir を実行すると二番目のシートに書き出します。
標準モジュールにて。

Function GetSubDir(strTrgDir As String, Optional rRow As Integer)
  Dim objFs As Object
  Dim objDir As Object
  Dim objFile As Object
  
  Set objFs = CreateObject("Scripting.FileSystemObject")
  Set objDir = objFs.Getfolder(strTrgDir)
  Set objFile = objDir.Files
  
  For Each objDir In objDir.SubFolders
    If objDir.Attributes <> 22 Then
      rRow = rRow + 1
      Debug.Print "rRow = " & rRow, "folder = " & objDir.Path _
         , "size = " & Int(objDir.Size / 1024) & "Kbyte"
      Sheets(2).Cells(rRow, 1) = objDir.Path
      Sheets(2).Cells(rRow, 2) = Int(objDir.Size / 1024)
      Sheets(2).Cells(rRow, 3) = "KB"
      'Call GetSubDir(objDir.Path, rRow) '←サブフォルダを見に行きます
    End If
  Next
  Set objFs = Nothing
  Set objDir = Nothing
End Function

Sub chkDir()
  Call GetSubDir("\\server\共有フォルダ名\")
End Sub
    • good
    • 3

> 現在は、月一でサーバー内の各フォルダのプロパティからサイズを取得して、


> エクセルで管理をしているのですが、

これを使って、csv出力機能を追加するのが一番簡単な気がしますけど、ExcelVBAではなく
VBSでする必要があるのでしょうか?

とりあえず、テキストファイルを作成するのなら、

FileSystemObject の概要
http://msdn.microsoft.com/library/ja/default.asp …

TextStream オブジェクト
http://msdn.microsoft.com/library/ja/script56/ht …

ここらへんを使うとかでしょうか。

この回答への補足

早速のご回答有難う御座います。

VBAも、VBSも初心者なもので、取り敢えず、頭の中と自宅のクライアント単体のみで、構文を考えていたため、出勤した際に色々と、試作をしてみます。

補足日時:2007/03/18 09:09
    • good
    • 0
この回答へのお礼

参考リンク大変有難う御座いました。
エクセルのVBAで処理できることが判り、本日、試行錯誤の上、意図する動作を暫定的に確認できました。
大変有難う御座いました。

お礼日時:2007/03/18 23:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています