Вот вам пример batch-file , который использует robocopy вместо менее эффективной команды forfiles .
@Echo Off
CD /D "C:\temp2" 2>Nul || Exit /B
If Not Exist *.bak Exit /B
Set "RO=/NS /NJS /NJH /NDL /NC"
Set "DM="
For /F "Skip=3 Tokens=1,2*" %%A In (
'RoboCopy . $tmp *.bak /TS %RO% /MINAGE:7 /L ^| Sort /R'
) Do If Not Defined DM (Set "DM=%%A") Else Del "%%C"
If Not Exist *.log Exit /B
If Not Defined DM (For /F "Tokens=1,2*" %%A In (
'RoboCopy . $tmp *.bak /TS %RO% /L ^| Sort /R') Do Set "DM=%%A")
If Defined DM (RoboCopy . $tmp *.log %RO% /MOV /MINAGE:%DM:/=% > Nul
RD /S /Q $tmp 2> Nul)
Код использует затем удаляет временный каталог в исходном каталоге, C:\temp2
, с именем $tmp
.Если у вас, скорее всего, уже есть каталог с таким именем, вы можете изменить имя в строках 12
и 13
на что-то менее вероятное.