Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Малость умная копирка (http://forum.oszone.net/showthread.php?t=321107)

DarckSol 24-11-2016 16:23 2690215

Малость умная копирка
 
Добрый день.
Необходим bat'ник, который будет проверять размер исходного файла, если он равен по размеру уже существующему бекапу, то ничего не делаем, если же нет, то копируем с заменой....
Накидайте шаблон или объясните как проверку размера делать.
За ранее, спасибо.
То есть сценарий такой.
Есть файл c:\data.dat, он меняет свой размер время от времени, но он жирный, ~10гигов, откатываем его на d:\backup.dat...
Проверяем размеры, действуем в соответствие с полученным результатом.

Elven 24-11-2016 17:05 2690240

Код:

robocopy /?

alpap 24-11-2016 18:03 2690263

Код:

@echo off
set "d=papka"
set "f=name.ext"
for /f "tokens=3*" %%a in ('dir/a-d/-c "%d%"^|find "%f%"') do (
 echo Файл "%%~fb" [размер:%%a]
 if %%a lss 24390513 (
  echo Размер меньше
 ) else (
  echo Размер больше
 )
)
pause

.

megaloman 24-11-2016 20:20 2690308

если размер исходного файла не равен по размеру уже существующему бекапу, то копируем с заменой....
Код:

@Echo Off
cls

Set "From=Z:\Box_In\backup.dat"
Set "To=Z:\Box_Out\data.dat"

FOR %%f IN ("%From%") DO Set "Old=%%~zf"
FOR %%f IN ("%To%") DO Set "New=%%~zf"

If "%Old%"=="" (
        Echo File "%From%" Not Found
) Else (
        If Not "%Old%"=="%New%" Echo "%Old%"^<^>"%New%" &Copy "%From%" "%To%"
)



Время: 03:22.

Время: 03:22.
© OSzone.net 2001-