【バッチファイル】フォルダ配下の指定した拡張子を持つ全てのファイルに対し、コマンドを実行する

前提

・ここではテキストファイル(.txt)のみを対象とする。必要に応じて修正する
・ここではインプットディレクトリとしてカレントディレクトリを設定する
 ┗インプットディレクトリ配下にoutputフォルダを作成する
 ┗copyコマンドを実行し、 インプットディレクトリ配下のファイルを
  outputフォルダへコピーする。必要に応じて修正する
・開始日時と終了日時を標準出力する

サンプルプログラム

@echo off

rem 処理対象とするファイルの拡張子を設定
set TARGET=*.txt

rem inputフォルダパスを設定(ここではカレントディレクトリを設定)
set inputFolder=%~dp0

rem outputフォルダ名を設定
set outputFolder=output

rem inputフォルダパス配下にoutputフォルダが存在している場合は削除
if exist %inputFolder%%outputFolder%\ (
	rmdir /s /q %inputFolder%%outputFolder%\
	echo %inputFolder%%outputFolder%\を削除しました
)

rem inputパス配下にoutputフォルダを作成
mkdir %inputFolder%%outputFolder%\
echo %inputFolder%%outputFolder%\を作成しました

rem 開始日時を出力
set dateTime=%date% %time%
echo **********%dateTime:~0,19% 開始**********

rem inputフォルダパスへ移動
cd %inputFolder%

rem inputフォルダパス配下の指定した拡張子を持つ全てのファイルに対しコマンドを実行
for %%i in (%TARGET%) do (
	copy /b %%i %inputFolder%%outputFolder%\%%i
)

rem 終了日時を出力
set dateTime=%date% %time%
echo **********%dateTime:~0,19% 終了**********

pause

実行結果

C:\Users\user\Desktop\old\output\を削除しました
C:\Users\user\Desktop\old\output\を作成しました
**********2019/09/08 14:17:02 開始**********
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
**********2019/09/08 14:17:03 終了**********
続行するには何かキーを押してください . . .
タイトルとURLをコピーしました