あるフォルダの中にサブフォルダがあるような、階層構造になっているフォルダから、
例えばwavファイルだけを抜き出してコピーしたい場合、しかも中のフォルダ構造もそのまま残してコピーしたい場合、
まずフォルダを丸ごとコピーして、その後で要らないファイルを手作業で消す、ということをよくやるが、
面倒くさいし、そもそも操作を間違える危険性が高い。
このような場合に、一括処理する方法として、今回は、バッチファイルを使用する。
バッチファイルであれば、中身はテキストなので、拡張子を.txtにしてメール添付でも送れるし、
使用するときに拡張子を.batにすれば実行できる。
(バッチファイルが何であるかやユーザ権限の問題については、別途調べてください)
このバッチファイルを、コピーしたい「inputフォルダ」と同じ場所に置いて実行すると、
「inputフォルダ」の中身が「outputフォルダ」の中にコピーされる(フォルダ構造とwavファイルだけ)。
---(ここから)
---(ここまで)
※コピー先に同名のファイルがある場合、日付が新しい場合のみ上書きコピーされます
3行目の拡張子を書き換えると、コピーするファイルの種類を変えることができます。
(例)テキストファイルを対象とする場合
4行目のフォルダパスを書き換えると、コピーするフォルダを変えることができます。
(例)マイドキュメントにある「dataフォルダ」の中にあるサブフォルダとファイルを対象とする場合
例えば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