OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 困ってます
  • 質問No.205649
  • 閲覧数1449
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 55% (44/80)

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

また、これらを勉強するのに良い方法(サイト)もあれば教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル12

ベストアンサー率 65% (242/372)

上手く説明するのが下手なのでサンプル作ってみました(笑)

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で調べる程度です。

以上、参考になりましたら幸いです。
お礼コメント
youkazu

お礼率 55% (44/80)

詳しく教えていただいてありがとうございます。

ところで、これらのコードは、どこに記述するんでしょうか?
textエディターなら、なんでもいいのですか?
で、それを走らせるソフトはどこにあるのでしょう?
(つまり、ド基本がわかってないんです。(笑))

何にもわかってないので、申し訳ないのですが、もう一手差し伸べていただけませんでしょうか。(土下座)
投稿日時 - 2002-01-26 14:32:19
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル12

ベストアンサー率 65% (242/372)

すいません、送信してから気づきましたが 下記サンプルは読み取り属性解除でした(^^;; 隠し属性ONにするには Const m_Hidden = 2 を定義して If (objFile.Attributes And m_Hidden) <> m_Hidden Then   objFile.Attributes = objFile.Attributes + m_Hidd ...続きを読む
すいません、送信してから気づきましたが
下記サンプルは読み取り属性解除でした(^^;;

隠し属性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
とかで動くような気がします(汗)


  • 回答No.3
レベル12

ベストアンサー率 65% (242/372)

>ところで、これらのコードは、どこに記述するんでしょうか? >textエディターなら、なんでもいいのですか? 文字コードをシフトJISで定義していますので、 下記のスクリプトをそのまま動かすだけならシフトJISで保存できるテキストエディタなら何でも構いません (もちろんメモ帳でもOKです) >で、それを走らせるソフトはどこにあるのでしょう? >(つまり、ド ...続きを読む
>ところで、これらのコードは、どこに記述するんでしょうか?
>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行です)

以上、参考になれば
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ