ファイルの有無を確認する

最近バッチファイルに関連したキーワードで検索して辿り着く人が増えてきました。
というわけでちょっと役立つサンプルを使った記事を書くことにします。


★ ファイルの有無チェック


この世にはバッチファイルでファイルの有無をチェックしたい人が多く居るようで、このキーワードがダントツで多いです。
一日10アクセスはこのキーワードで稼いでいます。

@ECHO OFF

:// チェックしたいファイル名
SET CHECKFILE=xxx.dat

:CHECKFILENAME
CLS
ECHO *******************************************************************
ECHO ※ チェックしたいファイル名を入力してください
ECHO.
ECHO.
ECHO ファイル名は相対パス,絶対パス,ファイル名のみでチェック出来ます
ECHO.
ECHO [基準フォルダ]
ECHO   %~dp0
ECHO.
ECHO ファイル名のみの場合は基準フォルダにあるファイルをチェックします
ECHO 相対パスの場合は基準フォルダを基点とします
ECHO.
ECHO *******************************************************************
ECHO.
SET /PCHECKFILE=[初期値=%CHECKFILE%]:


IF "%CHECKFILE%"=="q" GOTO FINISH

ECHO.
IF EXIST %CHECKFILE% (
  ECHO File %CHECKFILE% is Existing.

  ECHO explorerを起動します
  ECHO 何かキーを押してください
  PAUSE > NUL
  EXPLORER /select,%CHECKFILE%
) ELSE (
  ECHO File not %CHECKFILE% Exist.
)
ECHO.
ECHO 続ける場合は何かキーを押してください
ECHO # 終わる場合はファイル名に q と入力してください
PAUSE > NUL
GOTO CHECKFILENAME

:FINISH


ファイルがあるかどうかをチェックしてその結果を表示するサンプルです。実際に使ってみた時の動作は以下のとおりです。

(1) バッチファイルを実行
 バッチファイルをダブルクリックします。


(2) ファイル名(存在しない)を入力
 適当な存在しないファイル名を入れるとそんなファイルはないと表示されます。


(3) もう一度ファイル名(存在する)を入力
 今度は存在するファイル名を入れてみると、ファイルはあると教えてくれます。


しかもその存在するファイルを選択した状態のexplorerを起動してくれます。親切!!


いくつかポイントをまとめます。

ファイルの有無チェック
ファイルの有無はIF EXIST句で行います。逆にない場合はIF NOT EXIST句を使います。
使う人からデータを入力する
SETコマンドに/Pオプションを付ける事で入力されたデータを変数に受け取る事が出来ます。
入力を制御する事が出来ます
NULへリダイレクトすることでファイルの作成をせずに標準出力を消す事が出来ます。
explorerの使い方
explorerにオプションがあるというのは結構知られていません。/selectオプションを使うと指定したファイルを選択した状態でexplorerを起動できます。