新しく質問する

DOSバッチのコピーについて

役に立った:1件
  • 質問者:kontade
  • 投稿日時:2008/11/25 20:07
  • 困り度:すぐに回答が欲しいです

フォルダ内の複数ファイルを、別フォルダにコピーするバッチを作りたいと考えています。

具体的には、コピー元ファイルは、オリジナルファイル名+日付.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


宜しくお願い致します。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:1件)

回答(2件)

  • 参考になった:0件
  • 回答者:notnot
  • 回答日時:2008/11/27 02:07

今日の日付は %DATE% で参照できるので、それを使います。
標準では 2008/11/11 のような形式なので%DATE:/=%と / を削除します。

copy sample*_%DATE:/=% BACKUP\

通報する

  • 参考になった:0件

オリジナルファイル名が決まっていれば、

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 [コピー先パス]


こんな感じでどうでしょう?

通報する

  
このQ&Aは役に立ちましたか?(役に立った:1件)

このページのトップへ