システムとの.batファイルの関連付けを復元するにはどうすればよいですか(ダブルクリックすると実行されます)?


68

システムで.batファイルを再度実行する(ダブルクリックした場合)ために、「...で開く」プロパティを設定するにはどうすればよいですか?

どういうわけか、上司は、.batファイルのハンドラーがWordであるはずだと彼のワークステーションを確信させました。これで、.batファイルをダブルクリックすると、Wordで開かれます。


1
Windowsのファイルタイプの関連付けダイアログで.BATを見つけることさえできません。また、.batファイルで[アプリケーションから開く...]ダイアログを起動できません。どうして彼はそれを変えたのでしょうか??

3
うーん...だからこそ彼はダボスなのか?;)

3
.batファイルを右クリック->で開く...-> MS Wordを選択し、[常にこのプログラムで開く]をオンにして、[OK]をクリックします。bam、拡張機能がWordに登録されました。
いんちきのキホーテ

私のbatファイルには「開く」メニューもありません(Windows 7)もちろん、他のファイルにもあります。
lbalazscs

1
参考までに、.batファイルは実行可能ファイルではありません。これらは解釈されたスクリプトです。
ケルタリ

回答:


58

レジストリから.batファイルの関連付けを削除する必要があると思います(regeditプログラムを使用)。

LockerGnomeのこのフォーラムスレッドによると、このキーの下にあるレジストリ設定を削除する必要があります。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat

安全のために、これを行う前にレジストリをバックアップすることをお勧めします。


28
そこのミニマリストのために、UserChoiceサブフォルダーのみを削除することで成功したと付け加えます。削除されると、デフォルトの実行動作が復元されました。HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .bat \ UserChoice
マークFゲラ

.batキー全体を削除すると、正常に戻りました。何らかの理由で(ウイルス対策が疑われる)UserChoiceキーの名前を変更できませんでした。
キムグレスマン14

このような痛み!!これは更新時に自動的に発生しました。たくさんのMSに感謝します。
Jus12

パスでキーを完全HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.batに削除しUserChoiceましたが、それはうまくいきました。@Kim- regedt32管理者として実行していない可能性があります(右クリックしてを選択Run as administrator)。
マット

他の多くの考えられる理由/レジストリの場所があります。他の回答と、要約を試す私の回答を参照してください。
kxr

32

このレジストリキーファイルはそれを行います。「restore.reg」というテキストファイルにコピーして貼り付け、ダブルクリックしてレジストリにマージします。

.batファイル用に誤って作成したユーザーごとの設定をクリアし、.bat<-> batfileファイルタイプの関係やbatfile

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat]
[-HKEY_CURRENT_USER\Software\Classes\.bat]
[-HKEY_CURRENT_USER\SOFTWARE\Classes\batfile]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat]
@="batfile"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\open\command]
@="\"%1\" %*"

私のマシンでcmdファイルも実行する必要がありました
-mohlsen

1
私はこれを使用しましたが、うまくいくようです。
ホーコンK.オラフセン

これを行った後、batファイルをダブルクリックすると、「a.batは有効なwin32アプリケーションではありません」などのエラーが表示されます
-rashok

完全に機能しますが、影響を与えるには、explorer.exeタスクマネージャーを使用して、新しいタスクとして再度実行する必要がありました。
デイブアンダーソン

私のために、選択された答えがそうでなかった場合、これは解決しました。それはまだ.batファイルを開くアプリを求めていました。
-JDuarteDJ

10

同じ問題が発生しました(Windows 7)。バッチファイルは、実行される代わりにメモ帳で開かれていました。

(動作する他のマシンごとに).batファイルの以下のレジストリを修正すると、バッチが正しく実行されます。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

.bat                --> default-> Value not set
.bat/OpenWithList   --> default-> Value not set
.bat/OpenWithProgIds--> default-> Value not set
                        batfile-> Zero length binary values 

これらのエントリを保持しますが、他のすべてを削除します.bat。ダブルクリックしてバッチファイルを更新して実行します-正しく実行されます。


7

上記の回答のどれも私が働いていたマシンでは修正しませんでしたが、それを修正したのは管理シェルを起動して実行していたことです

assoc .bat=batfile
assoc .cmd=batfile

1
これはWindows 2008 Serverのソリューションであり、cmdは管理者として実行されます。Explorer.exeまたはWindowsの再起動は必要ありません。
トニーG

動作しない?????????????????
YumYumYum

2
これは、Windows 10
htxryan

いいえ、Windows Server 2012で動作しませんでした
ツールキット

Run as Administrator、これはWindows 10で完璧に機能しました!! :-) .batファイルを呼び出す.exeファイルが期待どおりに機能するようになりました。このソリューションは、レジストリをいじるよりもはるかに優れています!現在の関連付けが何であるかを見るために追記として、単に入力assoc .batの両方私の場合.batcmd されたとして関連しますNotepad++_file。これで、.batfilebatファイルを右クリックすると、管理者として実行または実行できます。これが不可能になる前。以前は、回避策はcmdウィンドウを開き、手動でa filename.batと入力してファイルを実行すること
でした

3

この答えの情報は私の質問の解決につながりました。

そこで言及されているレジストリキーを開き、

  • UserChoiceキーを削除しました
  • OpenWithListキーの下のすべてのエントリを削除しました

2

カレブによって40票を得た答えは私には役に立たなかったが、私は答えを見つけることになった。batファイルを再度実行するには、次の場所に移動する必要があります。

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.bat]および(デフォルト)を「batfile」に設定します。ダブルクリックで実行するのではなく、WordまたはNotepad ++でバッチスクリプトを開く場合は、それらのプログラムが独自のMIMEに(デフォルト)を設定しているためです。

簡単な修正が必要な場合は、テキストファイルを開いて貼り付けてください。

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat]
    @="batfile"

.reg拡張子を付けて保存し、ダブルクリックしてマージします。


1

レジストリでは、.batエントリはbatfileエントリを指す必要があります。

[HKEY_CLASSES_ROOT\.bat]
@="batfile"
.....

当然、batfileレジストリエントリがあることも確認する必要があります。

[HKEY_CLASSES_ROOT\batfile]
@="MS-DOS Batch File"
.....

1

Windows 8では、メモ帳を使用してバッチファイルを作成または変更しますが、秘密は次のとおりです。

二重引用符を使用してバッチファイルを保存します。文字通り、保存ボックス内の二重引用符を使用して「MYBACK.BAT」を使用してファイルを保存します。MYBACK.BATの代わり


True(以前のバージョンのWindows / Notepadでも同じ)。しかし、それは質問にどのように答えますか?
アルジャン14

0

レジストリの内容は、Windowsのバージョンによって異なります。

同じO / Sバージョンの別のコンピューターを見つけて、regeditを使用してHKEY_CLASSES_ROOT\.batおよびのコンテンツをエクスポートすることをお勧めしますHKEY_CLASSES_ROOT\batfile

次に、ボスのマシンに移動し、上記の2つのキーを削除して、2つのファイルをインポートします。


0

レジストリを編集する手間(および多くの人々の怖さや脅迫)を避けるために、無料で優れた、非侵襲的な修復ユーティリティを使用して、実際に良い(他の多くのクラッパウェアに対して)tweaking.com Windows Repairを実行できます。

具体的には、インストールし、「修復」タブに進んで「修復を開く」をクリックし、「04システムファイルの登録」にチェックマークを付けて、「修復の開始」ボタンをクリックします。

そのプログラムのユーザーインターフェイスは時間とともに変化しているため、将来、これを行うユーザーはこのオプションを見つけるためにプログラムを調べる必要があります。

ボスのコンピューターには他にも多くの問題が存在するので、彼はすべてのプログラムの修復を実行したいと思うかもしれません。

注:私はtweaking.comと提携していません。私はプログラムの大ファンです。それを上手に使用することで、コンピューターのオペレーティングシステムが保存されたり、頑固な問題が何度も解決されたりしました。


0

繰り返しますが、以前の回答のどれもここでは行いませんでした。
たとえば、デフォルト値を[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell] からeditに変更する必要がありましたopen

(かつて私は、特別な例外があるようです。BATファイルがなかった&変更のために提供されていません。ファイルの種類は、エクスプローラのフォルダオプションダイアログで関連付けを延長変わっていた。しかし、私は一度私は、覚えて追加エクスプローラのフォルダオプションダイアログでBATの種類を、デフォルトのシェル動詞である「編集」を取得します。)

検査するさまざまな場所

結局、さまざまな理由とさまざまなOSバージョンがあり、(少なくとも)次のレジストリフォルダー(およびサブフォルダー)の(デフォルト)値をチェックする必要があります-常識を使用して:-) そして、私はそのリストがOSに関連する優先順位を反映していると思う:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat]  (if present: remove "UserChoice")
[HKEY_CURRENT_USER\Software\Classes\.bat]  (if present: @ = "batfile")
[HKEY_CURRENT_USER\SOFTWARE\Classes\batfile]  (if present)
[HKEY_CURRENT_USER\SOFTWARE\Classes\batfile\shell]  (if present: @ = "open")
[HKEY_CURRENT_USER\SOFTWARE\Classes\batfile\shell\open\command]  (if present: @ = "\"%1\" %*")
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat]  @ = "batfile"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell]  @ = "open"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\open\command]  @ = "\"%1\" %*"
[HKEY_CLASSES_ROOT\.bat]  @ = "batfile"
[HKEY_CLASSES_ROOT\batfile]
[HKEY_CLASSES_ROOT\batfile\shell]  @ = "open"
[HKEY_CLASSES_ROOT\batfile\shell\open\command]  @ = "\"%1\" %*"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.