Code Log

プログラミングの勉強メモを残していきます。

Windows7 .batファイルの関連付けを元に戻す


スポンサーリンク

.batファイルを間違ってメモ帳みたいな、テキストを開くプログラムに紐付けてしまった。
.batファイルをダブルクリックしてもバッチが実行できず困っていた。

結論から言うと元に戻すことはできたのだが、一筋縄ではいかなかった。

まず最初に、ぐぐったら一番に出てくる@ITの.batファイルの関連付けを元に戻すという記事を参考に、レジストリをいじってみた。

「プログラムとファイルの検索」にregeditと入力してEnterを押す。


Windows > CurrentVersion > Explorer > FileExts > .bat

とあるが、.batを削除した。


これで直るかと思いきや、全く直らなかった。

次に、どこかのQAサイトにあった、コマンドプロンプトを開いて、

assoc .bat=batfile

を実行した。

これでも直らなかった。

最後に、
Lost .bat file association
に書いてある、以下をbatrecover.regというファイル名で保存し、実行した。

海外サイトで、しかもレジストリをいじることになるので、かなり勇気がいるのだけれど・・・。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.bat]
@="batfile"

[HKEY_CLASSES_ROOT\.bat\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@="\"%1\" %*"

.batファイルの関連付けをデフォルトに戻すには、上記の3つを順番に行う必要があった。

  1. レジストリエディタを開いて、「.bat」を削除する
  2. 上に書いた.regファイルを実行する
  3. 最後に、コマンドプロンプトでassoc .bat=batfileを実行する

この順番で対応すれば、.batの対応は元に戻る。
アイコンもミニ四駆のギアのようなものに戻るはずだ。

ただ、それに喜んで、空のファイルをhoge.batとかして実行しても、

「有効なWin32アプリケーションではありません」

と表示されてしまうので、ちゃんと

echo "hoge"

くらいは書いておこう。
空の.batファイルを叩くと、「有効なWin32アプリケーションではありません」と表示されてしまうのである。

Windowsインフラ管理者入門

Windowsインフラ管理者入門