• ベストアンサー

VBSorバッチファイルにてファイル読み取り属性の一括解除方法。

今回、CDからデータをとりだして(ここでは)c\:testというフォルダに格納する。というプログラムを作りたいのですがCDから取り出すので読み取り属性がついてしまい、上書きをしようとしても失敗してしまいます。フルパスを指定してひとつづつつぶせばいいのですがなんせデータ量が多いのでなにか一括でそのプログラムを使うだけでフォルダー内のファイルの読み取り属性をずばっと解除できればいいのですがなにか方法はありますでしょうか?subfoldersやfilesではその下のフォルダーやc:\testの直下のファイルにしか効果がなく・・・ぜひともよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

Windows NT、2000、XPならattribというコマンドを使ってみたらどうだろうか? C:\test>attrib /D /S -r *.* で、C:\test以下の全サブディレクトリ、全ファイルに対して読み取り属性を解除できる。 VBSを使うならFileSystemObjectsを使う事になるのだろうか。

jazzstar
質問者

お礼

そんなコマンドがあるとは・・・ありがとうございました。

その他の回答 (1)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.2

VBSで行うには再帰関数を使うのが便利かと思います。 Function ChangeAttribute(TargetFolder) For Each File In TargetFolder.Files File.Attributes = File.Attributes and not(1) Next For Each Folder In TargetFolder.SubFolders Folder.Attributes = Folder.Attributes and not(1) ChangeAttribute(Folder) '関数内で自分自身を呼び出す Next End Function

jazzstar
質問者

お礼

さんこうにさせていただきました。ありがとうございます!