Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Balyon
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 6
1

Проверить наличие свежего файла

17.12.2015, 17:47. Просмотров 995. Ответов 5
Метки нет (Все метки)

Привет.
Есть каталог в котором создаются backup'ы. Создаются они батником. Нужно немного допилить)
Суть в том, чтобы backup не создавался (bat файл уходил в :end) если в этой папке уже есть файл не старше 24 часов. Спасибо.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2015, 17:47
Ответы с готовыми решениями:

Проверить наличие файла и удалить его
Здравствуйте, подскажите как реализовать в bat такое ... Проверить наличие файла в папке d:\01 и...

Как проверить наличие файла через ftp?
Как проверить наличие файла через ftp? open mysite.com user pass cd...

Проверить наличие текстового файла с именем, переданным батнику в качестве параметра
Проверить наличие текстового файла с именем, переданным в качестве параметра командному файлу. ...

Вывести на экран имя и дату создания (или изменения) самого свежего файла в заданной папки
Добрый день, есть небольшая проблема: Нужно вывести на экран имя и дату создания (или изменения)...

Как проверить наличие Интернет соединения
Коллеги, хочу написать батник отправки эл. писем но с условием если есть Интернет. Как отправлять...

5
greg zakharov
Покинул форум
2216 / 885 / 248
Регистрация: 07.05.2015
Сообщений: 1,781
17.12.2015, 18:38 2
Задача решается многим проще на PowerShell. На командном языке решение будет выглядеть примерно так:
1) перебрать файлы папки dir'ом с ключом /tc
2) отобрать из вывода dir значения относительно текущей даты
3) если - пусто, можно создавать резерную копию
Иначе говоря, примерно так:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
  setlocal
    for /f %%i in (
      'dir /a-d /tc ^| findstr /rc:"%date%"'
    ) do if "%%i" neq "" (
      echo:Backup is already done.
      goto:eof
    )
    rem далее код создания резервной копии
  endlocal
exit /b
Но у данного подхода есть один существенный недостаток - не берется в расчет время (часы и минуты). Чтобы точность не терялась, можно конвертировать временную метку файла в zip-формат, сравнить стекущем временем и если показатель окажется более 86400, то вызывать код создания резервной копии.
2
b0gus
271 / 170 / 73
Регистрация: 17.03.2014
Сообщений: 495
17.12.2015, 19:14 3
Цитата Сообщение от greg zakharov Посмотреть сообщение
конвертировать временную метку файла в zip-формат
подскажите, пожалуйста, где об этом почитать?
0
Balyon
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 6
17.12.2015, 20:38  [ТС] 4
Цитата Сообщение от greg zakharov Посмотреть сообщение
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
 setlocal
 for /f %%i in (
 'dir /a-d /tc ^| findstr /rc:"%date%"'
 ) do if "%%i" neq "" (
 echo:Backup is already done.
 goto:eof
 )
 rem далее код создания резервной копии
 endlocal
exit /b
Я должно быть туплю, но все же... А где задается каталог для проверки?
0
b0gus
271 / 170 / 73
Регистрация: 17.03.2014
Сообщений: 495
17.12.2015, 20:52 5
Цитата Сообщение от Balyon Посмотреть сообщение
А где задается каталог для проверки?
скрипт, приведённый greg zakharov, следует поместить в
Цитата Сообщение от Balyon Посмотреть сообщение
каталог в котором создаются backup'ы.
0
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
17.12.2015, 21:33 6
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от Balyon Посмотреть сообщение
Суть в том, чтобы backup не создавался (bat файл уходил в :end) если в этой папке уже есть файл не старше 24 часов.


Windows Batch file
1
2
3
4
5
6
7
8
@robocopy "D:\Work" . /nc /ns /ndl /njh /njs /l /maxage:1| >nul findstr .&& exit|| (
 
          echo Бэкапим...
          rem Здесь будет находиться Ваша команда или блок команд для создания бзкапа!
          echo Бэкап создан!
          pause
 
         )
2
17.12.2015, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2015, 21:33

Как проверить наличие раздела реестра?
Как? :)

Проверить список файлов на наличие определенного текста
Проверить список файлов, заданный с помощью шаблона, на наличие определенного текста. Вывести на...

Как проверить наличие спецсимволов в значении переменной?
Как проверить наличие спецсимволов в переменной, которая будет использоваться для имени файла и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru