3

過去7日間、毎日(Windowsの場合)フォルダーのコピーを作成するスクリプトを作成しようとしています。8日目には、最も古いコピーを取得して上書きするなど、いつでもフォルダの7日間の「履歴」を取得します。

これまでLinuxで、フォルダを「/ home / whatever-date +%u'」にコピーするように毎日のbashスクリプトに指示するだけでこれを実行しました。

ちなみにdate+%uは曜日を出力します。月曜日に1つ、火曜日に2つなど。

比較すると、DOSのdateコマンドは完全に遅延しています。DOSバッチファイルで曜日(数値)を取得する簡単な方法はありますか、それともあきらめてJavaで書く必要がありますか?

4

4 に答える 4

1

このページから:

@echo off
Echo.|Command /C Date>DOW
set /p today=<DOW
set DOW=%today:~16,3%
xcopy "C:\Source\*.*" "C:\Dest\%DOW%"

これは、Sun、Mon、Tue...Satと呼ばれるサブフォルダーにバックアップされます。これらのフォルダを自分で作成するか、スクリプトを編集して作成する必要があります。

編集:これが何をするかについての不十分な説明。

于 2009-09-08T16:57:42.057 に答える
1

一時ファイルなしのKrisのより良いバリエーション

set DOW=%date:~16,3%<br>
xcopy "C:\Source\*.*" "C:\Dest\%DOW%"
于 2009-10-19T19:42:01.140 に答える
0

DATE環境変数(%DATE%)は、曜日(MON、TUE、WED、...)を返します。それで十分だと思われます。

于 2009-09-08T16:16:35.777 に答える
0

簡単な答え:わかりません。曜日を取得することはできません。前述のように、Javaを使用する方が適切です。

長い答え:そこを見て、特定のラップ(1週間/ 7日)からのファイルの処理を開始し、またはスケジューラサービスを使用て毎週日曜日(Windowsマシンで)に実行することができます。

お役に立てれば。

編集:私はあなたがこれを毎日実行し、8日目に異なる行動をしたいと思っているようです。ディレクトリ(「______ day」と呼ばれる隠しファイル、反復番号を含む)にいつでもフラグを残して、コピージョブを開始するときにそれを確認できます。
1から6の場合はコンテンツをインクリメントし、7の場合はマスターコピーを実行してファイルに1を入れます。
それらの線に沿った何か。

于 2009-09-08T16:09:38.490 に答える