• 締切済み

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 宜しくお願い致します。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

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

回答No.1

オリジナルファイル名が決まっていれば、 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

  • バッチでファイルのコピーを行いたい

    バッチを利用してファイルのコピーを実施しようとしておりまあす あるフォルダ内にあるファイルをすべて別のフォルダに移動したいのですが、 このとき、 ・コピー対象のファイルは、MAXで11ファイル(cpfile1.csv-cpfile11.csv)ですが、すべて存在するとは限らない ・コピーに失敗したファイルは、あと2回コピーのリトライをする (MAX3回コピーを実施する) ・途中でコピーが失敗したファイルがあったとしても、フォルダ内のすべてのファイルに対してコピーを行う copy /Y c:A\cp_from\*.csv c:A\cp_to\*.csv で行おうとしたのですがこの場合、2回のリトライを行う方法が不明でした for文を利用して行うべきなのでしょうか? またその時にはどのように書けばよいのでしょうか> お分かりになられる方がおりましたら、ご教授お願いいたします

  • コピーバッチの作成について。

    コピーバッチの作成について。 現在フォルダのコピーバッチを作成しようと考えています。 ただ、未熟なもので、なかなか難しく、できればご教授していただければと思い、 投稿させていただきました。 尚、現在作成したいコピーバッチは下記となっています。 1. テストPC01に不定期に配置されるフォルダを、テストPC02上にコピーする。 (フォルダ名はTEST20100919という形で、TESTのみ固定で日付が毎回変動する) 1.5 フォルダがない場合はバッチファイル終了。 2. コピー後に、テストPC02の特定のサービスを停止する。 3. テストPC02にコピーした、TEST20100919をTESTにリネームする。 4. 2.で停止したサービスを起動する。 5. テストpc01のコピー元フォルダを削除する。 (また、上記のバッチで実行された内容をログに吐き出させたいと考えています) このような処理をバッチファイルで行うことは可能でしょうか。 可能でしたら、お手数ですがご教授願えないでしょうか。 よろしくお願いいたします。

  • バッチでサブフォルダ内のファイルも含めたコピー処理をするには

    DOSコマンドのコピーコマンドについての質問です。 指定されたフォルダ内のファイル全て(サブフォルダ内に格納されているファイルも全て)をc:\bkup\にコピーするバッチを組みたいのですがどのようにすればよいのでしょうか。 xcopy /y /e %1 c:\bkup\ とした場合、サブフォルダもコピー対象に入りますがサブフォルダ内のファイルの格納先がc:\bkup\サブフォルダ名\になってしまい、私の実現したい処理とは異なります。 サブフォルダ内のファイルもc:\bkup\にコピーするにはどうすればよいのでしょうか。 宜しくお願い致します。

  • MS_DOSのバッチの作り方を教えて下さい

    以下のような処理を行うバッチを作りたいのですが、作り方が分かりません。 あるフォルダの中の全ファイルのタイムスタンプを見て、今日の日付(システム日付)と同じファイル(時間は見ない)のみワーク用フォルダに移動する。(前日のファイルのみ、そのフォルダに残す ※フォルダには前日及び本日のものしか存在しない) OSはWindows2000です。 よろしくお願い致します。

  • macでバッチファイルを作成したい

    お世話になります。 macで下記のようなバッチファイルを作成したいのですが、 実現方法が全くわかりませんでした。。。 ターミナル・Applescriptどちらでも結構ですので、 (1)「バッチファイル動かすフォルダ」の2階層上にある  「雛形」フォルダを、その2階層上の場所に「sample」フォルダ  という名前でコピー ※c\hoge\hoge2\hoge3の階層で、hoge3で、バッチファイルを起動すると   hogeにある「雛形」フォルダのコピーが、hogeに「sample」という   名前で作成  ※フォルダ名は可変のため、階層で表現したい (2)「バッチファイル動かすフォルダ」にある「上書き」フォルダを  2階層上にある「sample」フォルダに上書きする  ※「上書き」フォルダは残ったままで、「sample」フォルダに   上書きしたい ターミナル・Applescriptどちらでも結構ですので、 お手数で申し訳ございませんが、教えて頂けないでしょうか? ネットを見ても全くわからない程の能力でして、 ソースを見せて頂ければ大変うれしいです。。。 何卒よろしくお願いします。

  • DOSコマンドで指定日数よりも過去のフォルダを削除

    サーバ上のログファイルを日毎に次のようなフォルダにまとめて管理しています。 (ログフォルダは翌朝のDOSバッチジョブでBACKUP_(処理日付)のフォルダを作成してその下に*.*指定で全てのファイル(除 フォルダ)を移動して作成します。) 例. BACKUP_20041130 BACKUP_20041129 BACKUP_20041128    ・    ・    ・ BACKUP_20040311 BACKUP_20040310 このフォルダを処理日付から数えて90日より古いものを削除するDOSコマンドバッチファイル(日次実行)を作成したいです。 プログラムを作成すればこれを実現するのは可能なんですが、なんとかDOSコマンドだけでこの仕組を作りこめないものでしょうか? ご存知の方がいらっしゃったら教えて下さい。

  • Cで、呼び元のDOSバッチを終了させたい

    DOSのバッチからexeを呼んで、そのexe内で呼び元であるバッチファイルの呼んだ行以降に行かないようにしたいのですが出来るでしょうか? バッチでerrorlevel拾って判断して終わらせる(EXIT? )のではなく、EXE内でDOS窓を閉じたいのです。 C++で書いてます。 どなたかわかる方知恵をお願いいたします。 出来ないというのでもかまいませんが・・

  • DOSバッチで文字数カウント

    DOSバッチでファイル内の文字数をカウントする方法をご存じの方はいませんでしょうか?? UNIXでいうところの「wc -c」です。 使用OSは、Windows2003ServerとWindowsXPです。 ユーティリティーなどは導入できず、DOSバッチで実現しなくてはなりません。 どなたかご助力をお願いいたします。

  • DOS findコマンドのバッチでストールする

    DOSコマンドプロンプトで.batファイルを作成。 内容は find "2007:01" access_log_2007_04_11.txt >log2007041101.csv このバッチファイルを、検索するaccess_log_2007_04_11.txt と同じフォルダー上において、ダブルクリックで起動すると。 コマンドプロンプトが開くのだが、以前実行した、 find "2007:00" access_log_2007_04_05.txt >log2007040500.csv が、延々と実行され。 コマンドプロンプトを閉じても log2007040500.csv を、消しても消しても、作成される。 システムを落とすしかなくなる。のです。 4月の頭では正しく動作していたんですが???

  • バッチファイルについて

    ひとつのフォルダーにある、いくつかのファイルから、サイズの大きなものを特定し、別のフィルダーへ移動するdos バッチファイルをお教えいただけないでしょうか? よろしくお願いいたします

専門家に質問してみよう