【バッチファイル】指定フォルダ配下の指定ファイルのみ、処理対象とする

PR

前提

指定フォルダは「C:\Users\user\Desktop\test」。
対象ファイルは「aioueo_*」。

指定フォルダと指定ファイル
指定フォルダと指定ファイル
PR

サンプルプログラム

@ECHO OFF

setlocal enabledelayedexpansion

REM 対象フォルダ
SET targetFolder=C:\Users\user\Desktop\test\

REM 対象ファイル
SET targetFiles=aioueo_*

REM 対象フォルダ配下の対象ファイル数を取得
SET /a fileCount=0
FOR %%a IN (%targetFolder%%targetFiles%) DO ( 
	IF EXIST %%a (
		SET /a fileCount=fileCount+1
	)
)

ECHO 対象ファイル数は%fileCount%
ECHO.

REM 対象ファイル数が0でない場合
IF %fileCount% neq 0 (
	
	ECHO 対象ファイル数が0でないため処理続行
	ECHO.
	
	REM 対象フォルダ配下の対象ファイルを取得するコマンドを作成
	SET getFileListCmd=DIR /b %targetFolder%%targetFiles%
	
	REM コマンド実行により「対象フォルダ配下の対象ファイル」の数だけ繰り返し
	FOR /F %%a IN ('!getFileListCmd!') DO (

		ECHO %%aは処理対象

	)
) ELSE (
	
	ECHO 対象ファイル数が0のため処理はしない
	ECHO.

)

ECHO.

PAUSE
EXIT

対象フォルダ配下に対象ファイルが存在しない場合は、処理をしない。

対象ファイルの存在有無を確認するために、対象ファイル数を取得している(12~17行目)。

DIRコマンドにオプション「/b」を付与することで、「ファイル名のみ」を取得している(29行目)。

FOR文のカッコ内で「コマンド実行」をしている(32行目)。

PR

実行結果

指定フォルダ配下の指定ファイルのみ、処理対象とできました。

実行結果
実行結果

タイトルとURLをコピーしました