-1

このスクリプトを変更して、7 日以上経過したファイルのみを圧縮するようにするにはどうすればよいですか?

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.txt*, D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r D:\Agentrics\integration\incoming\Mansoor\backup\"%%~nA.zip" "%%A"

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.TXT,D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi) DO DEL "D:\Agentrics\integration\incoming\Mansoor\backup\.cpi*" "%%A"

よろしく、ジェイソン

4

2 に答える 2

3

WinRARのスイッチを使用-toするだけで、指定された期間よりも古いファイルのみを処理するようにアーカイバに指示します。ピリオドは、数値と単位で構成される文字列である必要があります。

NNNdNNNhNNNmNNNs

ここで、NNNは数値で、d(日)、h(時間)、m(分)、s(秒) は有効な単位指定子です。

すべての単位を指定する必要はありません。たとえば、あなたの場合、期間は次のようになります7d

FOR %%A IN (
  D:\Agentrics\integration\incoming\Mansoor\backup\*.txt*
  D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi*
) DO (
  "C:\Program Files\WinRAR\WinRAR.exe" a -r -to7d D:\Agentrics\integration\incoming\Mansoor\backup\"%%~nA.zip" "%%A"
)

指定された期間に一致するファイルがない場合、アーカイブは作成/更新されません。

于 2013-02-28T22:28:43.013 に答える
2

Robocopy は、経過時間に基づいてファイルをコピーできます。robocopy を使用してファイルを一時ディレクトリに移動し、そのディレクトリの内容を圧縮します。

例(未テスト):

SET SourceDir=C:\Agentrics\integration\incoming\Mansoor\backup
SET TmpDir=C:\Agentrics\integration\incoming\Mansoor\backup\tmpbackup

ROBOCOPY "%SourceDir%" "%TmpDir%" *.txt *.cpi /MOV /MINAGE:7 
FOR %%A IN (%TmpDir%\*.*) DO "C:\Program Files\WinRAR\WinRAR.exe" a "%SourceDir%\%%~nA.zip" "%%A" 
RMDIR /S /Q "%TmpDir%"
于 2013-02-28T19:06:05.017 に答える