bin/server.exe
またはなどのコマンドへのコマンドラインスタイルのパスが与えられた場合ping
、この実行可能ファイルへのフルパスを(cmdとして、またはそれProcess.Start
を解決するために)取得するにはどうすればよいですか?
試しPath.GetFullPath
ましたが、常に作業ディレクトリに対して拡張されます。bin/server.exe
正しく拡張されping
ますが、返されるとc:\users\matt\ping
(存在しません)。欲しいc:\Windows\system32\ping.exe
。
編集:私はcmdと同じ振る舞いをしたいです。いくつかの考慮事項:
- パスに同じ名前のローカル実行可能ファイルがある場合、cmdはローカル実行可能ファイルを優先します
- cmdは、コマンド
server
をserver.bat
またはに展開できますserver.exe
(ファイル拡張子を追加します)
また、Windowsのコマンドラインツールであるを試しましwhere
た。それはほとんど私が欲しいです:
検索パターンに一致するファイルの場所を表示します。デフォルトでは、検索は現在のディレクトリに沿って、PATH環境変数で指定されたパスで実行されます。
>where ping
C:\Windows\System32\PING.EXE
>where bin\server
INFO: Could not find files for the given pattern(s).
(この質問は、「パス」という単語の2つの異なる意味のため、検索するのが困難です)