- ベストアンサー
WSHでファイルの属性を変更する
MacOSXはピリオドで始まる非表示のファイルを作成します。 これは、ウインドウズからは見えてしまうので、属性を非表示にしたいのですが、 いちいち手動では、きりがないので、スクリプトで自動化出来そうなのですが、 ところが、知識が全然ないのでどのようにとっつけば良いのか、霧の中状態です。 一応、VBやVCの文法は多少読めるのですが、どのようにすればよいのか教えていただけたら幸いです・・・・ また、これらを勉強するのに良い方法(サイト)もあれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
上手く説明するのが下手なのでサンプル作ってみました(笑) WSHなどではファイルに関する操作はFileSystemObjectを利用します。 この中にAttributesプロパティというファイルの属性に関するものがあるようなので、それを利用してみました。 <?xml version="1.0" encoding="shift_jis" ?> <package> <job id="attrib_r"> <comment>Sample WSH - attrib_r.wsf</comment> <script language="VBScript"> <![CDATA[ Const strFileName = "c:\test.txt" Const m_ReadOnly = 1 Dim objFso Dim objWShell Dim objFile Set objFso = CreateObject("Scripting.FileSystemObject") Set objWShell = CreateObject("WScript.Shell") If objFso.FileExists(strFileName) Then Set objFile = objFso.GetFile(strFileName) If (objFile.Attributes And m_ReadOnly) = m_ReadOnly Then objFile.Attributes = objFile.Attributes - m_ReadOnly WScript.Echo "読み取り専用属性を解除しました。" Else WScript.Echo "読み取り専用ファイルではありません" End If Set objFile = Nothing Else WScript.Echo strFileName + "が見つかりませんでした。" End If Set objWShell = Nothing Set objFso = Nothing ]]> </script> </job> </package> 注:インデントは全角スペース使用してます 上記の例では特定のファイルだけを対象にしていますが 応用で指定したフォルダ以下なども可能です。 #Attributesプロパティの詳細は参考URLをご覧下さい。 FileSystemObjectを使用するときに注意しなければならないのは、動作パソコン(サーバー)内でNortonAntiVirusのスクリプト遮断などが有効だと動作しなかったり、警告出たりする場合があります。 更にマイクロソフトのIIS5セキュリティチェックリストを鵜呑みにしてFileSystemObject(scrrun.dll)自体を無効にしていても動きませんのでご注意を。 >また、これらを勉強するのに良い方法(サイト)もあれば教えてください。 同じく私もいいとこあれば教えて頂きたいです。 私の場合は基本的に検索エンジンで調べて、各命令などの詳細はMSDN Libraryで調べる程度です。 以上、参考になりましたら幸いです。
その他の回答 (2)
- hequil
- ベストアンサー率65% (242/372)
>ところで、これらのコードは、どこに記述するんでしょうか? >textエディターなら、なんでもいいのですか? 文字コードをシフトJISで定義していますので、 下記のスクリプトをそのまま動かすだけならシフトJISで保存できるテキストエディタなら何でも構いません (もちろんメモ帳でもOKです) >で、それを走らせるソフトはどこにあるのでしょう? >(つまり、ド基本がわかってないんです。(笑)) Windows98/2000/Me/XP またはInternet Explorer4以上をインストールされていれば既にWSHが使える状態になっています。 最新版はMicrosoft Windows Script(参考URL)よりダウンロード出来ます(Windows Script 5.6 日本語版がそれです) 動作方法は wscript hogehoge.wsf cscript hogehoge.vbs で動作させることが出来ます(通常は関連付けがされているかと思います) 更に詳しい説明はMSDN LibraryのWindows Script Hostにて書かれていますので、そちらを参考にして頂くと私の説明よりわかりやすく理解できるかと思います(笑) http://www.microsoft.com/japan/developer/library/default.asp? URL=/japan/developer/library/script56/wsconWSHBasics.htm (長いので2行にしていますが、実際は1行です) 以上、参考になれば
- hequil
- ベストアンサー率65% (242/372)
すいません、送信してから気づきましたが 下記サンプルは読み取り属性解除でした(^^;; 隠し属性ONにするには Const m_Hidden = 2 を定義して If (objFile.Attributes And m_Hidden) <> m_Hidden Then objFile.Attributes = objFile.Attributes + m_Hidden WScript.Echo "隠し属性を設定しました" Else WScript.Echo "既に隠し属性が設定されています" End If とかで動くような気がします(汗)
お礼
詳しく教えていただいてありがとうございます。 ところで、これらのコードは、どこに記述するんでしょうか? textエディターなら、なんでもいいのですか? で、それを走らせるソフトはどこにあるのでしょう? (つまり、ド基本がわかってないんです。(笑)) 何にもわかってないので、申し訳ないのですが、もう一手差し伸べていただけませんでしょうか。(土下座)