指定された日付のテキストファイルをコピーするバッチファイルを作成します

batch-file
指定された日付のテキストファイルをコピーするバッチファイルを作成します

ユーザー入力を取得してテキストファイルをコピーするバッチファイルを作成します。 入力として、ユーザーは日付から日付までを指定します。 テキストファイルの名前は次のようになります: error_log_04_06_2011

たとえば、2011年4月6日から2011年7月6日までのデータが必要なため、このようなxcopyコマンドを使用してそれを行うことができます

@ECHO OFF + SET / P f =日付から入力してください(md-yyyy):+ SET / P t =日付まで入力してください(mm-dd-yyyy):+ mkdir d:\ bkp + xcopy / S / D: %f%/ EXCLUDE:%t%C:\ Emulator \ Log_Data d:\ bkp

これにより、指定した日付からすべてのファイルがコピーされます。 今、「to」の日付も指定したいので、特定の期間のファイルをコピーできます。

1つのアプローチは、deleteコマンドを使用して、コピーされた余分なファイルを削除することです。 ただし、削除コマンドには日付に関するスイッチがありません。 だからPLZヘルプ…​..

  -1  0


ベストアンサー

残念ながら、batch / cmdに組み込まれているこの領域で役立つことはあまりありません。 dirはフラグを取り、変更された時間で出力を並べることができますが、ファイル名だけに依存するようにしたいのですが、それでも必要な範囲が得られません。

表示したファイル名はソートできません。 YYYY_MM_DD形式で名前が付けられている場合、sortおよびforループを使用して、日付範囲内のファイルを見つけることができます。

それがなければ、範囲内の個々の日付を生成し、各日付をファイル名形式に変換し、それをコピーに渡すために、日付計算を行う必要があります。

Rob Van Der Woudeには、より難しい日付の計算など、バッチ内の日付関数の良いリストがあります。 始めるには良い場所でしょう。 http://www.robvanderwoude.com/battech.php#Time

0


試したことはありませんが、xcopy / dおよび/ lスイッチを使用して、特定の日付より後の日付のファイルのリストを生成し、計算を行わないようにすることができます。

最初の日付からのxcopyの後、2番目の日付以降の日付のファイルのリストからfor / lループで削除を実行できます。

0


タイトルとURLをコピーしました