web-dev-qa-db-ja.com

バッチファイルは実行されません-Notepad ++を開くだけです

Windows8.1を実行しています。これは数日前に機能しました。何が変わったのか本当にわかりませんし、これが機能しなくなった可能性のあるアップデートも知りません。

.bat(バッチ)ファイルを実行すると(right-click > Openまたはdouble-click)バッチファイルはNotepad ++で表示され、実行されません。コマンドプロンプトをロードし、コマンドプロンプト内から手動で.batファイルを実行すると、バッチファイルは完全に実行されます。

私はこれらの2つの記事を注意深くチェックしました:

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

何も違いはありません。具体的には:

コマンドプロンプトから:

  • assoc .bat 戻り値 .bat=batfile
  • ftype batfile 戻り値 batfile="%1" %*

私が試したすべての後、PCは違いなく再起動されました。これは私を夢中にさせています...なぜバッチファイルはもう実行されないのですか?

1
AlainD

最初に実行したいのは、それがcmd構造ツリー全体に問題があるのか​​、それとも.batファイルだけに問題があるのか​​を確認することです。

.batファイルの名前を.cmdに変更した場合、機能しますか?その場合は、.batと.cmdを比較して、何が違うかを確認してください。

良いテストです! .batファイルの名前を.cmdに変更しましたが、機能しました。コマンドラインからassoc.cmdと入力すると、.cdm = cmdfileが返されました。現在処理中で、HKEY_CLASSES_ROOT\batfileとHKEY_CLASSES_ROOT\cmdfileの違いを理解しています。

驚くばかり。したがって、.bat拡張子を修正する必要があります。 .cmd拡張子がどのように設定されているかを確認し、.bat拡張子にも設定できます。

他の回答を実行しましたが、.batファイルをダブルクリックすると空のコマンドプロンプトが開きますが、実際のbatfileは実行されていません。

さて、.batファイルとの関連付けをリセットしました。

HKEY_CLASSES_ROOT .batキーと.cmdキーも調べて、特にサブフォルダーを確認する必要があります。

[HKEY_CLASSES_ROOT\batfile\Shell\Open\command]に1つだけ変更を加えました。これは、値を@ = "\" C:\ Windows\System32\cmd.exe\"\"%1\""から@ = "\"%1\"%*"に変更するためのものでした。バッチファイルが機能するようになりました...これは素晴らしいことですが、私は自分の正気を疑うようになりました。私はこれをチェックして、ループを回っていたのとまったく同じレジストリ設定を試したことを誓ったかもしれません!ここにいくつかの隠されたWindows設定があるように感じます...

いいえ、基本的に他の回答を実行するときにキーをリセットしますが、これで問題は本当に解決します。これは本当に修正されています。 :)

1
LPChip

「クラシック」コントロールパネルを開きます:Win + Rキー:Control
(表示者:小さなアイコン)
すべてのコントロールパネル項目->デフォルトプログラム->ファイルタイプまたはプロトコルをプログラムに関連付ける(関連付けの設定):
-リストで.BATを検索->プログラムの変更(その他のオプション)->このPCで別のアプリを探す
-選択C:\ Windows\System32\cmd.exe

2
KidACrimson