dポイントプレゼントキャンペーン実施中!

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

例えばhide.vbsを実行すれば隠しファイルが見えなくなるように。unhide.vbsで見えるようになるようにしたいです。

A 回答 (4件)

こんにちは。



特定のフォルダを選ぶなら、直接、 ChengeAtribute mPath とコマンドを書き換えてください。なお、トグルになってますから、Hidden <-> Normal と入れ替わりますから、VBSは、ひとつだけで可能です。


Sample Code
'-------------------------------------------

Dim mFolder, mPath
Dim msg
Const ssfDESKTOP = 0
Const ssfPROGRAMS = &H2 'ProgramFiles
Const ssfPERSONAL = &H5 'MyDocuments
Set mFolder = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 0, ssfPERSONAL)

If Not mFolder Is Nothing Then
mPath = mFolder.Items.Item.Path
End If
If mPath <>"" Then
ChengeAtribute mPath
MsgBox msg
End If
Function ChengeAtribute(FolderPath)
Dim fso, d, f, s
Const Normal =0
Const Hidden =2
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(FolderPath)
If f.Attributes And Hidden Then
f.Attributes = f.Attributes + Hidden
msg = "Hidden On"
Else
f.Attributes = f.Attributes - Hidden
msg = "Hidden On"
End If
End Function

'-------------------------------------------
    • good
    • 0

こんにちは。



下記は一例です。

WSH(VB Script)で、エクスプローラを起動して、SendKeyメソッドにより該当のキー操作を
送ってやる方法もあるかと思います。

エクスプローラ上の操作は、マウスを使わずに、キー操作のみで操作可能だと思いますので、
「メニュー」及び「フォルダオプション」のキー操作(下記のようなもの)を、SendKeyメソッドで
エクスプローラに送ってやる方法です。

<ウィンドウ操作の標準的な主なキー操作>
◎メニュー操作
  [Alt]キー+英字キー など
◎ダイアログ上の操作
  タブの切替え           → [Ctrl]+[Tab]
  コントロールのフォーカス移動 → [Tab] or 方向キー([↑]、[↓]、[←]、[→]) など
  ラジオボタン、チェックマークのOn/Off → スペースキー

■参考サイト
@IT:運用 Windows管理者のためのWindows Script Host入門 第5回 
WshShellオブジェクトの詳細(1) 4.キー・ストロークの送信とプログラムのアクティベーション
http://www.atmarkit.co.jp/fwin2k/operation/wsh05 …

SendKeys メソッド
http://msdn.microsoft.com/ja-jp/library/cc364423 …

==================================================
※すみませんが、以下は余談になります。

下記↓の質問の件ですが、
http://qanda.rakuten.ne.jp/qa5433799.html

やはり、当方の調査不足でした。

Windows XP 及び Vista 等では、
  コマンドプロンプト上で拡張子なしで、コマンドを記述した場合、
  環境変数 PAHTEXT に登録された拡張子の順番でコマンドとして認識され、
実行できるようです。
ですので、.vbs のスクリプトファイルでも拡張子なしで実行できるようです。

■参考サイト
Studio ODIN - blog風小ネタ集 > 拡張子を省略しても実行できるワケ
http://www.odin.hyork.net/write/write0023.html

北アラバ公国 コマンドプロンプトでの拡張子によるファイル実行順位
http://northaraba.blog17.fc2.com/blog-entry-333. …

実行ファイルの拡張子を追加定義する - @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/842pa …

環境変数
http://elku.at.infoseek.co.jp/memo/environment.htm


以上です。参考になれば幸いです。
    • good
    • 0

レジストリの下記レジストリキー&エントリーで設定していますから、RegWriteメソッドで書き替えてください。

ただし、vbs実行(設定変更)後、ログオフ⇒ログオンが必要なはずです。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Hidden  REG_DWORD  0x00000002   (←隠しファイルおよび隠しフォルダを表示しない)

Hidden  REG_DWORD  0x00000001   (←すべてのファイルとフォルダを表示する)

ついでに、「保護されたオペレーティング システム ファイルを表示しない (推奨)」は、同じレジストリキーの

ShowSuperHidden  REG_DWORD  0x00000000   (←表示しない)

ShowSuperHidden  REG_DWORD  0x00000001   (←表示する)

『Microsoft MSDN Library:RegWriteメソッド』(下の方にVBScriptとJScriptのサンプルプログラムがあります。)
http://msdn.microsoft.com/ja-jp/library/cc364417 …
    • good
    • 0

VBSの本に


「ファイルやホルダの属性を取得したい」というのがあり、
ObjFile.Attributes=1 読み取り専用
などの例が載っています。
ファイル属性の定数も載っていてHidden(=2)隠しファイルがあります。
Googleで「Attributes Hidden VBS」などで照会し質問者のニーズのことかチェックのこと。
http://www.red.oit-net.jp/tatsuya/vb/FileSystemO …  など。
    • good
    • 0

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