goo blog サービス終了のお知らせ 

言うだけ言ってみる

なんとなく記録。

フォルダ構造を保ったまま、指定の種類のファイルだけをコピーする方法

2014年11月17日 | Weblog
あるフォルダの中にサブフォルダがあるような、階層構造になっているフォルダから、
例えばwavファイルだけを抜き出してコピーしたい場合、しかも中のフォルダ構造もそのまま残してコピーしたい場合、
まずフォルダを丸ごとコピーして、その後で要らないファイルを手作業で消す、ということをよくやるが、
面倒くさいし、そもそも操作を間違える危険性が高い。

このような場合に、一括処理する方法として、今回は、バッチファイルを使用する。
バッチファイルであれば、中身はテキストなので、拡張子を.txtにしてメール添付でも送れるし、
使用するときに拡張子を.batにすれば実行できる。
(バッチファイルが何であるかやユーザ権限の問題については、別途調べてください)

このバッチファイルを、コピーしたい「inputフォルダ」と同じ場所に置いて実行すると、
「inputフォルダ」の中身が「outputフォルダ」の中にコピーされる(フォルダ構造とwavファイルだけ)。


---(ここから)
cd /d %~dp0
setlocal

set targetext=wav
set indir=.\input
set outdir=.\output


IF NOT EXIST %outdir% mkdir %outdir%
ping localhost -n 2 > nul

FOR /F %%A IN ("%indir%\*.%targetext%") DO xcopy "%%A" "%outdir%\" /D /I /E /Y
pause

endlocal

---(ここまで)
※コピー先に同名のファイルがある場合、日付が新しい場合のみ上書きコピーされます


3行目の拡張子を書き換えると、コピーするファイルの種類を変えることができます。
 (例)テキストファイルを対象とする場合
  set targetext=txt

4行目のフォルダパスを書き換えると、コピーするフォルダを変えることができます。
 (例)マイドキュメントにある「dataフォルダ」の中にあるサブフォルダとファイルを対象とする場合
  set indir=%USERPROFILE%\Documents\data


コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。