« GetCacheEntryInfoW()を使ってURLからキャッシュのパスを調べる。 | トップページ | PowerShell 2.0があれば、バッチファイルからそのコンソールウィンドウを非表示/最小化/最大化/元に戻す。 »

2009年10月30日 (金)

PowerShell 2.0 PS1ファイルの関連付け

PowerShell 2.0の初期状態では、拡張子が仮設のファイルタイプへ向いているので、本来のファイルタイプへ向け直します。

[HKEY_CLASSES_ROOT\.PS1]
@="PS1_auto_file"

[HKEY_CLASSES_ROOT\.PS1]
@="Microsoft.PowerShellScript.1"

更に、ファイルタイプのデフォルト動詞が、メモ帳に向いているので、PowerShellに向け直します。

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell]
@="Open"

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell]
@="0"

更に、関連付けのコマンドラインが引数を忘れているようなので、%*を追加します。

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" \"-file\" \"%1\""

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" \"-file\" \"%1\" %*"

更に、ファイルをPS1ファイルにドロップするには、WSHのドロップハンドラを使用します。

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\ShellEx\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

ただし、WSHのドロップハンドラはOpen動詞に作用するので、動詞の名前を入れ替えます。

0 → Open
Open → Edit
Edit → ISE

同時に、ファイルタイプのデフォルト動詞を戻します。

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell]
@="0"

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell]
@="Open"

« GetCacheEntryInfoW()を使ってURLからキャッシュのパスを調べる。 | トップページ | PowerShell 2.0があれば、バッチファイルからそのコンソールウィンドウを非表示/最小化/最大化/元に戻す。 »