- 締切済み
DOSバッチのコピーについて
フォルダ内の複数ファイルを、別フォルダにコピーするバッチを作りたいと考えています。 具体的には、コピー元ファイルは、オリジナルファイル名+日付.CSVの法則で、100ファイル程度が毎日コピー元フォルダに出力されます。 コピーしたいファイルは、その都度、日付単位で変わるので、バッチ実行時に任意のコピーしたい日付を指定(入力)して、別フォルダに コピーさせたいのですが、何か方法ありますでしょうか? 尚、昔の馴染みがあり、理解しやすいので、DOSのバッチで実現できないでしょうか? 例 sample1_20081124.CSV sample2_20081124.CSV sample1_20081125.CSV sample2_20081125.CSV sample1_20081126.CSV sample2_20081126.CSV ↓ 20081125のファイルだけコピーする sample1_20081125.CSV sample2_20081125.CSV 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
今日の日付は %DATE% で参照できるので、それを使います。 標準では 2008/11/11 のような形式なので%DATE:/=%と / を削除します。 copy sample*_%DATE:/=% BACKUP\
- piro19820122
- ベストアンサー率38% (256/672)
オリジナルファイル名が決まっていれば、 for %%i in (A B C) do copy [コピー元パス\]%%i_%1.csv [コピー先パス] というような文でOKかと思います。 これで、 > hoge.bat 20081125 と実行すれば、 A_20081125.csv B_20081125.csv C_20081125.csv がコピーされるかと思います。 (A B C にオリジナルのファイル名が入る。ファイル名が長くて多い場合は複数行に分けるか、/f オプションを使って、別のファイルにファイル名一覧を作成すると良いでしょう) オリジナルファイル名が不定で、桁数が等しいなら、 copy [コピー元パス\]????????_%1.csv [コピー先パス] といった感じで。?を桁数分だけ入れます。 オリジナルファイル名に同じ文字があるなら、その部分は次のように具体的な文字で指定しても良いです。 copy [コピー元パス\]sample??_%1.csv [コピー先パス] こんな感じでどうでしょう?