简体   繁体   中英

Batch file - copy two last modified files

I would like to write a .bat file to move the two last modified files of a specific extension *.bak in directory a to a different directory.

I used this line to copy files:

robocopy D:\DailyBackup\IDMRObjects\SQLBackups SQLBackups *.bak /S

I'm new with this and have no idea how to tweak this to get the result I need.

Thanks

not tested:

@echo off


for /f "tokens=* delims=" %%# in (' dir /a:-d /o:-d /t:a  /b "D:\DailyBackup\IDMRObjects\SQLBackups SQLBackups\*.bak"') do (
   if not defined last set "pre_last=%%~f#"
   set "last=%%~f#"
)
copy /y "%last%" "c:\new_dir"
copy /y "%pre_last%" "c:\new_dir"
@echo off
setlocal EnableDelayedExpansion

cd "D:\DailyBackup\IDMRObjects\SQLBackups"
set copied=0
for /F "delims=" %%a in ('dir /B /A-D /O-D /T:W *.bak') do (
   copy "%%a" "other\dir"
   set /A copied+=1
   if !copied! equ 2 goto break
)
:break

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM