• ベストアンサー

WSHでファイルの属性を変更する

MacOSXはピリオドで始まる非表示のファイルを作成します。 これは、ウインドウズからは見えてしまうので、属性を非表示にしたいのですが、 いちいち手動では、きりがないので、スクリプトで自動化出来そうなのですが、 ところが、知識が全然ないのでどのようにとっつけば良いのか、霧の中状態です。 一応、VBやVCの文法は多少読めるのですが、どのようにすればよいのか教えていただけたら幸いです・・・・ また、これらを勉強するのに良い方法(サイト)もあれば教えてください。

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

  • ベストアンサー
  • hequil
  • ベストアンサー率65% (242/372)
回答No.1

上手く説明するのが下手なのでサンプル作ってみました(笑) 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で調べる程度です。 以上、参考になりましたら幸いです。

参考URL:
http://www.microsoft.com/japan/developer/library/script56/jsproattributes.htm
youkazu
質問者

お礼

詳しく教えていただいてありがとうございます。 ところで、これらのコードは、どこに記述するんでしょうか? textエディターなら、なんでもいいのですか? で、それを走らせるソフトはどこにあるのでしょう? (つまり、ド基本がわかってないんです。(笑)) 何にもわかってないので、申し訳ないのですが、もう一手差し伸べていただけませんでしょうか。(土下座)

その他の回答 (2)

  • hequil
  • ベストアンサー率65% (242/372)
回答No.3

>ところで、これらのコードは、どこに記述するんでしょうか? >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行です) 以上、参考になれば

参考URL:
http://www.microsoft.com/japan/developer/scripting/
  • hequil
  • ベストアンサー率65% (242/372)
回答No.2

すいません、送信してから気づきましたが 下記サンプルは読み取り属性解除でした(^^;; 隠し属性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 とかで動くような気がします(汗)

関連するQ&A

  • サーバー自動ログインソフトを作りたい

    バッチもしくはVBスクリプトでサーバーに自動ログインする ソフトを作ろうとしているのですが、うまくいきません。 具体的な環境は以下のとおりです。 サーバー    IP:10.10.2.1   ログイン名:login   パスワード:pass 現在、コマンドプロンプトから手動で  C:\>telnet 10.10.2.1 でログインし、ログイン名とパスワードを聞いてくるので、手動で ログイン名:login パスワード:pass と入力しているのですが、この作業を自動化したいです。 バッチファイルでtelnetコマンドを実行し、その後VBスクリプトを起動し、ログイン名とパスワードを送ろうと思ったのですが、 telnetコマンドはサーバーと接続しただけでは次のコマンドに命令権を渡さないようで、VBスクリプトが起動しないです。 バッチとVBスクリプト以外でもいいので、上記の一連の作業を自動化する方法がわかるという方、ご教授願います。

  • 【HTML】src属性のURI値でhttpの記述を省いてもいいの?

    最近のブラウザでは、 <img src="//hogehoge.com/~"> というように、src属性のURI値で、"//"から記述するとブラウザ側で 表示されているURLのプロトコル(httpかhttps)を自動的に 判別して解釈してくれるようです。 (IE6以降、FireFox,Opera,Safari,Chromeで確認済み) いちいちjavascriptとかでhttpかhttpsの判別をコントロールしなくても 良いので楽なのですが、W3Cで推奨されている(非推奨ではない)記述方法として今後も使っても問題ないのでしょうか?

  • VB Scriptで隠しファイル、フォルダの表示/非表示の切り替え

    エクスプローラからツール>フォルダオプション>「表示」タブといくと 「すべてのファイルとフォルダを表示する」と「隠しファイルおよび隠しフォルダを表示しない」の二択から好きな方を選べるようになっていますが、これをVB Scriptで自動化することはできないでしょうか? 例えばhide.vbsを実行すれば隠しファイルが見えなくなるように。unhide.vbsで見えるようになるようにしたいです。

  • 隠しファイルとZip圧縮について

    こんにちは。OSはwindowsMeです。 マイドキュメント内で隠しファイルを使おうと思いプロパティで属性を見たのですが、ほとんどのフォルダの属性が「隠しファイル(H)」の項目が反転していないのでチェックできません。 (1)ファイルの中味によって出来ない物があるのでしょうか? また、ツールのフォルダオプションで「表示」を変更すると、アイコンの位置が勝手に移動してしまいました。位置が整理されただけなので問題はありませんが (2)これは仕方のない現象なのでしょうか? 隠しファイルがうまくいかないので、ZIP圧縮を使ってみました。こちらはうまくいきましたが、パスワードを入れてファイルを開くたんびに解凍された中味(フォルダ)が自動的にデスクトップに表示されてしまいます。 (3)これは解凍してファイルを開く度に、いちいち削除しなければいけないのでしょうか? 初心者なので質問がわかりづらいかもしれませんが、よろしくお願い致します。

  •  VBスクリプトで簡単なテキストを表示するものを作っているのですが、X

     VBスクリプトで簡単なテキストを表示するものを作っているのですが、XP・Vista では問題なく動くのに、同じものが Windows7 ではいちいち「xxxx.vbs を実行しますか?」と聞いてきて、「はい(Y)」を押さないと実行されません。非常に煩わしいです。  意図しないスクリプトが実行されないためのセキュリティだと思うのですが、自分で作ったスクリプトなので、何か設定することで確認無しで実行できるようにできないでしょうか。

  • AutoCadを外部からコントロールし作図

    宜しくお願いします。 AutoCadをそれ以外のソフト(以下外部と称す)と連携させられるでしょうか? また更に、外部に実装されたスクリプトでコントロールする仕組みは 外部側の対応が問題ないとき 可能でしょうか? (※例:VB,VBA,VC) その際のインターフェイス(?)は OSがウインドウズの場合APIでしょうか? ご教示ください。

  • ファイルをコピーしたい。できれば圧縮まで。

    Set fs = CreateObject("Scripting.FileSystemObject") fs.CopyFile("C:\WINDOWS\デスクトップ\作業時間.xls","C:\WINDOWS\デスクトップ\kiroku\作業時間.xls") デスクトップにある作業時間というエクセルのファイルをkirokuフォルダにコピーをしようと、上記のWSHを書きました。 (当方 WSHとVBスクリプトの違いはよくわかりません。) ところが実行すると スクリプト: C:\WINDOWS\デスクトップ\kopi.vbs 行: 2 文字: 82 エラー: Sub プロシージャを呼び出すときに、かっこを使うことはできません。 コード: 800A0414 ソース: Microsoft VBScript コンパイル エラー とエラーになります。  たぶん ” の使い方が悪いと思うのですが、どうもうまくいきません。 どこが悪いか指摘してください。 当方 ME使用してます。  フロッピーにバックアップを取るために毎回コピーと圧縮を繰り返しているので自動化できないかと考えてます。 

  • phpスクリプトの書かれているファイル内の文字列置換

    いつもお世話になります。 phpスクリプトの書かれているそのファイル内の文字列を置換することはできないでしょうか。 更に説明をさせていただきますと。 a.php から <a href="b.php"・・・> で、b.phpが呼び出されて表示されます。 このとき、このb.php内のある文字列が自動的に置換されるスクリプトをb.php内に書くことはできないかという質問です。 つまり、b.phpがb.php内のスクリプトによって処理されてからブラウザに渡されるようにしたいと思っての質問です。 目的は、 b.php内に表示する画像をphpスクリプトでフォルダ内の画像ファイルを取得し、b.php内の指定箇所に表示することです。 ただ、画像を表示するだけならその箇所に<img src="" で指定すれば良いではないかということになります。このイメージタグに OnMouse="" とか、class style 指定など画像の種類によって設定していきたいと思っています。だから、その異なる属性を直接に記載するのでなく、phpで画像フォルダ内をスキャンして、その画像の内容によって自動的に記載できたらと思っての質問です。 例えば、#imgXXXX# などとしておき<img src="" ・・・と置換したい。 更に、この処理のスクリプトを、b.php内に記載できないものかということです。 長くなってしまいました。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • CGIのプログラム設置でSSIを使わずに、JavaScriptで直接CGIを呼び出す

    SSIが使えないサーバーで、JavaScriptを使って、直接CGIを呼び出して、表示させるCGIの設置をしています。 CGIスクリプト配布先では、表示した箇所に下記タグを記載するようにと説明があります。 ----------------------------------------------- <html> <body> <script language="JavaScript" src="○○.cgi" > </script> </body> </html> ----------------------------------------------- 真っ白いままで表示されなく困っています。 ちなみに直接CGIにアクセスすると、崩れた表示で表示されますので、CGI設置は問題ないはずです。 (CGIのパーミッション755にしてあります) 質問がいくつかあるのですが・・・ ホームページ作成ソフトで作っていますので、<head>~</head>内に下記メタタグが自動挿入されていますが、何か関係があるのでしょうか? <meta http-equiv="content-script-type" content="text/javascript" /> language属性は HTML4.01に採用されなかったため、HTML4.01 に従う場合は language 属性ではなく、type属性を使用するという記載を検索で見つけましたが、type属性に変更すればよいのでしょうか? type属性に変更のタグはどうように記載すればよいでしょうか? JavaScriptはあまり詳しくないので、とんちんかんな質問だったらすみません。 どうぞよろしくお願いします。 ----------------------------------- 配布先CGI:http://www.nmt.ne.jp/~mamiko/scripts/index.html

  • チャットのスクロールバーについて

    チャットのスクロールバーのエレベーター部分を 常に下に持ってきて、チャットがパソコンの画面最下部にきても いちいち手動でスクロールバーを動かさなくても、自動でエレベーターを 最下部にもってくる方法を、PHP、あるいはJavaScriptでどうすれば、 実現できるか、スクリプトを書いて教えていただきたいのですが。 どうぞよろしくお願いします。

専門家に質問してみよう