Windows 8.1: .bat ファイルの関連付けをデフォルトに戻す

Windows 8.1: .bat ファイルの関連付けをデフォルトに戻す

数週間前、.bat ファイルを誤って変更して Notepad++ で開くようにしました (かなりよくある問題だと思います)。Win XP と Win 7 では、関連するレジストリ キーを更新して問題を解決した .reg ファイルがありました。ただし、このバッチ ファイルは Win 8.1 では機能しなくなり (Win 8.1 ではファイルの関連付けが別の方法で処理されると思われます)、手動でレジストリ ハックした方法もすべて機能しません。

何をしても、.bat ファイルを以前の関連付けに復元できないようです。 ようやく Notepad++ で .bat ファイルの関連付けを解除できましたが、デフォルトを適用する方法がわかりません。

以下のサイトに記載されている解決策を試しました。

http://www.eightforums.com/tutorials/8486-default-file-associations-restore-windows-8-a.html https://social.technet.microsoft.com/Forums/windows/en-US/a85d8a59-b93b-45a3-8aee-cdf93ce32079/how-do-i-reset-the-default-file-association-for-bat-files-on-windows-81?forum=w8itproinstall

さらに、管理者コマンド プロンプトで次のコマンドを実行しましたが、効果はありませんでした (どちらも正しい値が報告されています)。

C:\Users\Christopher>assoc .bat
.bat= batfile

C:\Users\Christopher>ftype batfile
batfile="%1" %*

しかし、どこにも行き着きません。誰か助けてくれませんか?

答え1

これはちょっとした悪夢でしたが、@Pariah の助けを借りて解決しました。次の .reg ファイルを管理者として実行し、次のキーを手動で削除する必要がありました。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice

reg ファイルを管理者として実行します:

runas /user:administrator "regedit /s c:\test.reg"

登録ファイル:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\batfile]
@="Windows Batch File"
"EditFlags"=hex:30,04,00,00
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
  32,00,5c,00,61,00,63,00,70,00,70,00,61,00,67,00,65,00,2e,00,64,00,6c,00,6c,\
  00,2c,00,2d,00,36,00,30,00,30,00,32,00,00,00

[HKEY_CLASSES_ROOT\batfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\
  61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,36,\
  00,38,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell]

[HKEY_CLASSES_ROOT\batfile\shell\edit]

[HKEY_CLASSES_ROOT\batfile\shell\edit\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
  00

[HKEY_CLASSES_ROOT\batfile\shell\open]
"EditFlags"=hex:00,00,00,00

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

[HKEY_CLASSES_ROOT\batfile\shell\print]

[HKEY_CLASSES_ROOT\batfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\
  00,25,00,31,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\runas]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\batfile\shell\runas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00,\
  64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,43,00,20,00,22,00,25,00,31,00,22,\
  00,20,00,25,00,2a,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\runasuser]
@="@shell32.dll,-50944"
"Extended"=""
"SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}"

[HKEY_CLASSES_ROOT\batfile\shell\runasuser\command]
"DelegateExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}"

[HKEY_CLASSES_ROOT\batfile\ShellEx]

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers]
@="Compatibility"

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\Compatibility]
@="{1d27f844-3a1f-4410-85ac-14651078412d}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\OpenGLShExt]
@="{E97DEC16-A50D-49bb-AE24-CF682282E08D}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers]

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}]
@="{1531d583-8375-4d3f-b5fb-d23bbd169f22}"

答え2

Windows 8.1 でこの問題を修正するためにユーザーが使用しなければならなかった最終的な Reg ファイル (Notepad++ によって提供されたバッチ ファイルを実行して、Notepad++ を既定のバッチ ファイル ハンドラーとして設定した後)。ユーザーは、これより下の他の修正の両方を試しました。最終的には、管理者として .reg ファイルで次のコードを実行する必要がありました。

まず、reg ファイルを管理者として実行します。 注: このファイルを C:\ に配置し、fix.reg のような名前を付けて、最終的に C:\fix.reg のような名前にするのが最善です。パスやファイル名にスペースが含まれている場所に配置すると、エラー メッセージが表示され、reg キーは追加/変更されません。

コマンド:

runas /user:Administrator "regedit.exe c:\fix.reg"

fix.reg ファイルの内容:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\batfile] 
@="Windows Batch File" 
"EditFlags"=hex:30,04,00,00 
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\ 
00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\ 
32,00,5c,00,61,00,63,00,70,00,70,00,61,00,67,00,65,00,2e,00,64,00,6c,00,6c,\ 
00,2c,00,2d,00,36,00,30,00,30,00,32,00,00,00 

[HKEY_CLASSES_ROOT\batfile\DefaultIcon] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\ 
61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,36,\ 
00,38,00,00,00 

[HKEY_CLASSES_ROOT\batfile\shell] 

[HKEY_CLASSES_ROOT\batfile\shell\edit] 

[HKEY_CLASSES_ROOT\batfile\shell\edit\command] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\ 
54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\ 
00 

[HKEY_CLASSES_ROOT\batfile\shell\open] 
"EditFlags"=hex:00,00,00,00 

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

[HKEY_CLASSES_ROOT\batfile\shell\print] 

[HKEY_CLASSES_ROOT\batfile\shell\print\command] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\ 
54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\ 
00,25,00,31,00,00,00 

[HKEY_CLASSES_ROOT\batfile\shell\runas] 
"HasLUAShield"="" 

[HKEY_CLASSES_ROOT\batfile\shell\runas\command] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00,\ 
64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,43,00,20,00,22,00,25,00,31,00,22,\ 
00,20,00,25,00,2a,00,00,00 

[HKEY_CLASSES_ROOT\batfile\shell\runasuser] 
@="@shell32.dll,-50944" 
"Extended"="" 
"SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}" 

[HKEY_CLASSES_ROOT\batfile\shell\runasuser\command] 
"DelegateExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx] 

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers] 
@="Compatibility" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\Compatibility] 
@="{1d27f844-3a1f-4410-85ac-14651078412d}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\OpenGLShExt] 
@="{E97DEC16-A50D-49bb-AE24-CF682282E08D}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\DropHandler] 
@="{86C86720-42A0-1069-A2E8-08002B30309D}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers] 

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers\ShimLayer Property Page] 
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}" 

[HKEY_CLASSES_ROOT\batfile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}] 
@="{1531d583-8375-4d3f-b5fb-d23bbd169f22}"

上記の方法がうまくいかない場合に試せるその他の修正方法 [Windows 8.1 では以下の方法がうまくいかなかったが、少なくとも 1 人のユーザーによって動作することが確認されています]

移動するレジストリ キー: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.BAT\UserChoice 「user choice」という名前のキーを削除します。

わかりやすくするためのコードブロック(リクエストに応じて):

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice

参照ページには、修正として次の内容も記載されています。

私はその点には同意しません。これは Windows 8 に固有の問題ではありません。何らかの理由でファイルの関連付けが変更されたため、元に戻す必要があります。この問題は Windows 2000 (おそらくそれ以前) まで遡って再現される可能性があります。次のキーをチェックして、その投稿の応答に示されている値に設定されていることを確認しましたか?

[HKEY_CLASSES_ROOT.bat] @="batファイル"

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

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

この 2 番目に複雑なソリューションのユーザーには、作成した *.reg ファイルへのリンクもあります。このファイルでは、このテキストの上にリストされているいくつかのキーが自動的に既定値に設定されます。これはベスト ソリューションとしてマークされており、それらはページの下部に保持されているので、参照ページの下部を参照してください (M$ がなぜその決定を下したのかはわかりません。ソリューションをスレッドの上部に配置すれば見つけやすくなるのではないでしょうか。M$ さん、ありがとう)

これで、notepad++ による処理が停止するはずです。補足として、*.bat ファイルを右クリックし、メニューの [編集] エントリをクリックすると、メモ帳でバッチ ファイルが開きますが、コマンド シェルでバッチ ファイルを実行するには、ダブルクリックしたままにしておきます。

使用した参照資料 [Windows 7 フォーラムに記載されていますが、Windows 8.1 でも同じです]:

https://social.technet.microsoft.com/Forums/windows/en-US/fc2ca91d-5509-4c9b-92a5-5af19375e361/lost-bat-file-association?forum=w7itprogeneral

より詳しい情報 (必要に応じて regedit を開いて管理者として実行する方法)

この場合、レジストリ エディターを使用する必要があるため、少し複雑です。ほとんどの場合、変更はユーザー レベルのものであるため、ユーザーとしてこれを行うことができるはずですが、適用されているセキュリティ ポリシーによっては、次の操作を実行する必要がある場合があります。

  1. スタートメニューボタンをクリックします
  2. 「regedit」と入力します (スタート メニューが表示されたら入力を開始するだけで、自動的に検索が開始されます)。
  3. 画面にregeditが表示されたら右クリックします
  4. コンテキストメニューが表示されたら、「管理者として実行」をクリックします。
  5. 認証します(管理者パスワードを入力し、指紋リーダーに指を置きます。設定方法はアカウントにログインするのと同じです)

補足: 管理者権限なしで最初に試すこともできます。最悪の場合、リストされているキーを削除できなくなります。このような場合は、管理者として実行する必要があります。その後、キーを削除できるようになります。

一般的に、Windows のほぼすべてのバージョンにおけるほとんどのファイルの関連付け (バッチ ファイルなどのシステム設定のものを除く) は次のようになります。

必要なのは、左 Shift キーを押したまま *.bat ファイルを右クリックするだけです。ファイルに対してこれを行うと、表示されるコンテキスト メニュー (右クリックしたときに表示される小さなメニュー) の上部近くに [プログラムから開く...] オプションが表示されます。[プログラムから開く] をクリックすると、ファイルを開くプログラムを選択できるダイアログが表示されます。左下隅の [既定として使用] ボックスにチェックを入れると、同じ種類のファイルをダブルクリックしたときの新しい既定のアクションになります。

答え3

このレジストリ キーの削除 (管理者として) は、上記のすべて (Windows 8.1) では実行されませんでした。

HKEY_CURRENT_USER\Software\Microsoft\Windows\Roaming\OpenWith\FileExts.bat\UserChoice。

お役に立てれば。

関連情報