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つの異なる意味のため、検索するのが困難です)