指定されたフォルダ内の特定拡張子のファイルを検索するWindowsバッチ
■概要
特定のディレクトリに特定の拡張子のファイルが存在するかチェックする。
■小ネタ
①同一処理を呼び出す場合はサブルーチンを利用する
CALL :CHECK_FILE %CHECK_DIR\dir1\ CALL :CHECK_FILE %CHECK_DIR\dir2\ CALL :CHECK_FILE %CHECK_DIR\dir3\
※サブルーチンを呼び出す時に引数も使える。
:CHECK_FILE CD /D %1
②サブディレクトリも検索対象とする場合は「/s」オプションをつける。
FOR /f "delims=;" %%I IN ('dir /b /on /s *.txt') DO (
③削除確認が必要な場合は「/Q」オプションをつける。
DEL /Q %%I
④現在実行中のバッチ・スクリプトを終了する
EXIT /B
■サンプルプログラム
@ECHO OFF SET CHECK_DIR=C:TEMP\ ECHO 配下にロックファイルが作成されているかチェックを行います。 ECHO チェック対象ディレクトリ:%CHECK_DIR% SET /P CHECK_FLG="ディレクトリが正しいか確認してください。続行しますか?(Y):" IF /I NOT "%CHECK_FLG%"=="Y" GOTO :END REM 対象ファイルが増えた場合は追加する REM exec.txt CALL :CHECK_FILE %CHECK_DIR\dir1\ CALL :CHECK_FILE %CHECK_DIR\dir2\ CALL :CHECK_FILE %CHECK_DIR\dir3\ PAUSE EXIT REM フォルダに配下にロックファイルが存在するかチェックする。 :CHECK_FILE CD /D %1 SET EXEC_FLG= SETLOCAL ENABLEDELAYEDEXPANSION FOR /f "delims=;" %%I IN ('dir /b /on /s *.txt') DO ( ECHO ============================================ ECHO %%I SET /P EXEC_FLG="削除しますか?(Y):" IF /I "!EXEC_FLG!"=="Y" ( DEL /Q %%I ECHO %%Iを削除しました。 ) ) ENDLOCAL EXIT /B :END EXIT