.exe拡張子を明示的に指定せずに端末でWindows実行可能ファイルを実行するにはどうすればよいですか?

.exe拡張子を明示的に指定せずに端末でWindows実行可能ファイルを実行するにはどうすればよいですか?

タイトルからほとんどの質問がわかるように、最後に明示的なサフィックスを指定せずに.exeWindowsの実行可能ファイルをどのように実行できますか?

ここに画像の説明を入力してください。

explorer.exe .たとえば、、、、、explorer .またはnotepad.exe fileで、および他の呼び出しを減らします。notepad filedocker.exe psdocker ps

これを行う基本的な方法があるか、command not foundコマンド名に利用可能なLinuxプログラムがない場合は、エラーを処理して実行可能ファイルにリダイレクトする方法があるかどうか疑問に思います。.exe$Path

編集する:

以前は環境を追加するのを忘れていました。ここにあります:

  • ターミナル:Windowsターミナル
  • Linux:WSLのUbuntu 20.04(Linux用Windowsサブシステム)
  • シェル:zsh
  • オペレーティングシステム:Windows 10 1909

ベストアンサー1

設定できますcommand_not_found_handler。テストされていません:

function command_not_found_handler {
  for ext in ${(s:;:)${PATHEXT-".com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh;.msc"}}; do
    if (( $+commands[$1$ext] )); then
      exec -- "$1$ext" "${@:2}"
    fi
  done
  print -ru2 "command not found: $1"
  return 127
}

これはfoo.exe(または他の拡張機能など.bat)機能しますがfoofoo.exezshでは機能しませんが、foocmdでは機能し、名前付きプログラムを呼び出す場合は、foo.exe他の問題があります。

おすすめ記事