Categories: OSWindows10

【バッチファイル活用】ファイル一覧を出力する!WHEREコマンドの使い方を解説!サンプル付き

バッチファイルの作成やWindowsコマンドライン操作の中で、ファイルや実行可能ファイルのパスを素早く特定する必要がある場面は多くあります。
そのような時に便利なのが WHERE コマンド です。

WHERE コマンドを使えば、環境変数 PATH に登録されたディレクトリ内で特定のプログラムがどこにあるのかを簡単に検索できます。
本記事では、 WHERE コマンドの基本的な使い方から、応用的な活用方法までを詳しく解説 し、 実際にバッチファイルでの活用例 も紹介します。

これを読めば、WHERE コマンドを使いこなせるようになり、 Windows環境でのファイル検索を効率化 できます。

WHEREコマンドとは?

WHERE コマンドは、 指定したファイルやプログラムをWindows環境内で素早く検索する ためのコマンドです。
Linuxにおける which コマンドと同様の機能を持ち、 環境変数 PATH に登録されているフォルダを検索 します。

基本構文

WHERE [オプション] <検索対象>
  • <検索対象>:検索するファイル名やパターン
  • [オプション]:検索条件を変更するためのオプション

WHEREコマンドの基本的な使い方

1. 実行可能ファイルの検索

例えば、python.exe の場所を調べるには次のように入力します。

WHERE python

出力例:

C:\Users\Username\AppData\Local\Microsoft\WindowsApps\python.exe
C:\Program Files\Python39\python.exe

環境変数 PATH に登録されているディレクトリ内の python.exe のすべてのパス を表示します。


2. ワイルドカードを使った検索

ワイルドカードを使用すると、特定の拡張子のファイルを検索できます。

WHERE *.exe

このコマンドは、 現在のディレクトリおよび PATH 内の .exe ファイルをすべて検索 します。


3. 複数のファイルを同時に検索

WHERE notepad calc

出力例:

C:\Windows\System32\notepad.exe
C:\Windows\System32\calc.exe

notepad.exe(メモ帳)や calc.exe(電卓)のパスをまとめて検索できます。


4. 特定のディレクトリを指定して検索

WHERE /R C:\Users\Username\Documents *.txt

このコマンドは、 指定したフォルダ内(C:\Users\Username\Documents)にある .txt ファイル を検索します。


/T オプションを使って詳細情報を取得

/Tオプションとは?

/T オプションを使用すると、検索対象の ファイルの最終更新日時とファイルサイズ も取得できます。
ファイルの管理や、特定のバージョンのファイルを見つける際に役立ちます。

/Tオプションの使い方

WHERE /T notepad.exe

出力例:

cmdコピーする編集する2024/02/27 10:15:30     203264 C:\Windows\System32\notepad.exe
  • 2024/02/27 10:15:30 → 最終更新日時
  • 203264 → ファイルサイズ(バイト単位)
  • C:\Windows\System32\notepad.exe → 該当するファイルのパス

/Tオプションと/Rオプションを組み合わせる

特定のディレクトリ内で .txt ファイルの詳細情報を取得するには次のようにします。

WHERE /R C:\Users\Username\Documents /T *.txt

出力例:

2024/02/26 08:30:12      10240 C:\Users\Username\Documents\example1.txt
2024/02/25 14:20:45 20480 C:\Users\Username\Documents\example2.txt

特定フォルダ内の .txt ファイルの 最終更新日とサイズ まで確認できます。


バッチファイルでWHEREコマンドを活用する

1. Pythonのパスを取得して実行するバッチ

@echo off
SETLOCAL
WHERE python >nul 2>nul
IF %ERRORLEVEL% NEQ 0 (
echo Pythonが見つかりませんでした。
exit /b 1
)
echo Pythonが見つかりました。
python --version
ENDLOCAL

WHERE コマンドで python.exe を探し、見つかればバージョンを表示します。


2. /Tオプションを使った詳細情報取得バッチ

@echo off
SETLOCAL
SET SEARCH_FILE=notepad.exe

WHERE /T %SEARCH_FILE% > result.txt

IF %ERRORLEVEL% NEQ 0 (
echo %SEARCH_FILE% が見つかりませんでした。
) ELSE (
echo %SEARCH_FILE% の情報を result.txt に保存しました。
type result.txt
)
ENDLOCAL

解説

  • WHERE /T %SEARCH_FILE% > result.txt
    notepad.exe最終更新日時とサイズ情報を result.txt に保存
  • type result.txt
    → 結果を画面に表示

3. 特定ディレクトリ内の更新が新しいファイルを探す

@echo off
SETLOCAL
SET SEARCH_DIR=C:\Users\Username\Documents
SET FILE_PATTERN=*.log

WHERE /R %SEARCH_DIR% /T %FILE_PATTERN% | sort /R > latest_logs.txt

echo 最新のログファイル一覧を latest_logs.txt に保存しました。
ENDLOCAL

解説

  • WHERE /R %SEARCH_DIR% /T %FILE_PATTERN%
    .log ファイルの 最終更新日時とサイズを取得
  • sort /R
    → 更新日時順にソート(最新のものが上位)

まとめ

WHERE コマンドは、 Windows環境でのファイル検索を効率化する強力なツール です。
特に /T オプションを活用すると、 ファイルの最終更新日時やサイズを確認 できるため、 特定バージョンのファイルを探したり、ファイル管理を最適化 するのに便利です。

今回のポイント

WHERE コマンドで 特定の実行ファイルやスクリプトのパスを検索
/R オプションで 特定ディレクトリ内を検索
/T オプションで ファイルの更新日時とサイズを取得
✅ バッチファイルで WHERE を活用すれば、プログラムの存在チェックやファイル管理が容易に

これらを活用すれば、 Windows環境での作業効率が格段に向上 します!
ぜひ WHERE コマンドを使いこなして、 よりスマートなバッチ処理を作成 してみてください!

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。