1. ホーム
  2. windows

[解決済み] Windowsのバッチファイルから%PATH%に実行ファイルが存在するかどうかをテストする方法は?

2023-01-10 21:42:10

質問

Windows のバッチ ファイルから、実行ファイルが PATH 環境変数に存在するかどうかをテストする簡単な方法を探しています。

OS によって提供されていない外部ツールの使用は許可されていません。必要な Windows の最小バージョンは Windows XP です。

解決方法を教えてください。

for %%X in (myExecutable.exe) do (set FOUND=%%~$PATH:X)
if defined FOUND ...

異なる拡張子のためにこれが必要な場合、単に PATHEXT :

set FOUND=
for %%e in (%PATHEXT%) do (
  for %%X in (myExecutable%%e) do (
    if not defined FOUND (
      set FOUND=%%~$PATH:X
    )
  )
)

もしかして where もレガシー Windows バージョンにすでに存在しているのかもしれませんが、私はそのようなものにアクセスできないのでわかりません。私のマシンでは、以下も動作します。

where myExecutable

で、見つからなかった場合は0以外の終了コードで返します。バッチ処理では、おそらく出力を NUL にリダイレクトさせたいと思うかもしれません。

心に留めておくこと

一括でパースする ( .bat ) ファイルとコマンドラインでは解析が異なります (バッチファイルでは %0 - %9 )を2倍にする必要があるので % を二重にする必要があります。コマンドラインでは、これは必要ないので、変数には単に %X .