Windowsのコマンドプロンプトでファイル操作してみた メモ

指定ディレクトリをサブディレクトリも含めてコピー。ただし、外部ファイルで指定したパスにマッチするファイルは除く

xcopyコマンドを使用する。

xcopy %コピー元ディレクトリ% %コピー先ディレクトリ% /E /EXCLUDE:exclude.conf

exclude.conf

.txt
.xml

指定ディレクトリ以下のファイル、ディレクトリをリストアップ

dirコマンドを使用する。

dir %検索対象ディレクトリ% /S /B

応用例:指定ディレクトリ以下に存在する指定拡張子のファイルを、指定ディレクトリ直下にすべてコピーするバッチコマンド

mycopy.bat

@echo off
set /p MYCOPY_FROMDIR="コピー元のディレクトリのパスを入力してください>"
set /p MYCOPY_TODIR="コピー先のディレクトリのパスを入力してください>"
set /p MYCOPY_TYPES="コピー対象ファイルの拡張子を入力してください(例:.txt .dat)>"
dir %MYCOPY_FROMDIR% /S /B > mycopy_file.list
findstr /E "%MYCOPY_TYPES%" mycopy_file.list > mycopy_target.list
FOR /F %%F IN ('type mycopy_target.list') DO copy %%F %MYCOPY_TODIR%\
del mycopy_file.list
del mycopy_target.list