Порой возникает необходимость регулярно копировать из каталога некоторое заранее определенное количество файлов, руководствуясь временем их создания или последнего изменения. Эту задачу можно автоматизировать при помощи батника:
В квадратные скобки необходимо подставить реальные значения.
Директива
Команда
set dir1=[Путь к папке с файлами]
set dir2=[Путь к папке для размещения копий]
setlocal enabledelayedexpansion
set /a num=0
set /a err=0
for /f "tokens=* delims=" %%i in ('dir /b /o:-d /t:W "%dir1%\*.*"') do (
set /a num+=1
if /i !num! leq [количество копируемых файлов] (
copy "%dir1%\%%i" "%dir2%\" > nul
if errorlevel 1 (echo %%i >> errorslog.txt
set /a err+=1
)
echo copy file...%%i) else (
echo skip file... %%i
)
)
echo COUNT OF ERRORS: %err%
pause
В квадратные скобки необходимо подставить реальные значения.
Директива
setlocal enabledelayedexpansion
включает режим отложенного расширения переменных, который позволяет сделать изменения счетчика num видимым внутри цикла (по умолчанию это не так).Команда
dir /b /o:-d /t:W "%dir1%\*.*"
определяет порядок копирования файлов. В данном случае первым будет самый новый файл. При помощи других ключей команды dir
можно задать другие условия.
Комментариев нет:
Отправить комментарий