Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Резервирование файлов с сравнением по дате создания

Ответить
Настройки темы
CMD/BAT - Резервирование файлов с сравнением по дате создания

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Задача копировать файл закладок хрома, если файл обновился, если резервная копия новее то копия ложиться в профиль хрома.
Только скрипт не отрабатывает не могу понять в чем ошибка.
P.S. Скрипт компиляция сходных скриптов переработанная под свою задачу.
Скрытый текст

::@echo off
SetLocal
::расположение файла закладок хрома
set sourc="%UserProfile%\AppData\Local\Google\Chrome\User Data\Default\"
::расположение для резервных копий
set bak="%UserProfile%\ChromBacup\"

if not exist "%bak%" md "%bak%"

::проверка бекапа закладок
if not exist "%bak%\Bookmarks" goto bak1
if exist "%bak%\Bookmarks" goto bak2

:bak1
cd %sourc% copy /y "Bookmarks" "%bak%" pause
exit

:bak2
cd "%sourc%"
if exist "%bak%" for %%A in ("%sourc%") do echo %%~tA |>nul find "%date%" || >nul copy /y "Bookmarks" "%sourc%" "%bak%" else goto rest
pause
exit

:rest
cd "%bak%"
if exist "%sourc%" for %%A in ("%bak%") do echo %%~tA |>nul find "%date%" || >nul copy /y "Bookmarks" "%bak%" "%sourc%"
pause
exit

Отправлено: 19:33, 20-09-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Атриарх:
Только скрипт не отрабатывает не могу понять в чем ошибка. »
Ну, вот, сразу:
Цитата Атриарх:
cd %sourc% copy /y "Bookmarks" "%bak%" pause »
А это:
Цитата Атриарх:
if exist "%bak%\Bookmarks" »
вообще лишнее. Причём в обоих упоминаниях.

Отправлено: 21:24, 20-09-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
se »
создает первоначальный файл, паузи добавил для отладки переходов.

cd %sourc% copy /y "Bookmarks" "%bak%"
pause

возможно можно и так

if not exist "%bak%\Bookmarks" goto bak1 else goto bak2

не лишние. без этой проверки скрипт будет выполнятся подряд и будет тупо перезаписывать файл бекапа, без проверки даты...

if exist "%bak%\Bookmarks" »

поправил логику переходов
Скрытый текст

@echo off
SetLocal
::расположение файла закладок хрома
set sourc="%UserProfile%\AppData\Local\Google\Chrome\User Data\Default\"
::расположение для резервных копий
set bak="%UserProfile%\ChromBacup\"

if not exist "%bak%" md "%bak%"

::проверка бекапа закладок
:sw
if not exist "%bak%\Bookmarks" goto bak1
if exist "%bak%\Bookmarks" goto bak2

:bak1
cd %sourc% copy /y "Bookmarks" "%bak%"
goto sw
exit

:bak2
cd "%sourc%"
if exist "%bak%" for %%A in ("%sourc%") do echo %%~tA |>nul find "%date%" || >nul copy /y "Bookmarks" "%sourc%" "%bak%" else goto rest
exit

:rest
cd "%bak%"
if exist "%sourc%" for %%A in ("%bak%") do echo %%~tA |>nul find "%date%" || >nul copy /y "Bookmarks" "%bak%" "%sourc%"
exit

Отправлено: 11:20, 21-09-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Атриарх:
создает первоначальный файл, паузи добавил для отладки переходов.
cd %sourc% copy /y "Bookmarks" "%bak%"
pause »
Не сменяет каталог и не копирует файл. Вы по-прежнему пытаетесь использовать несколько команд в одной строке, причём некорректным образом. Вся разница в том, что раньше их было три, теперь — две.

Цитата Атриарх:
if not exist "%bak%\Bookmarks" goto bak1 else goto bak2
не лишние. без этой проверки …»
Не передёргивайте. Код был другой, и мои слова касались именно его.

Отправлено: 11:44, 21-09-2016 | #4


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Поправил

cd %sourc% & copy /y "Bookmarks" "%bak%"

По логике одно и тоже
Цитата Атриарх:
if not exist "%bak%\Bookmarks" goto bak1
if exist "%bak%\Bookmarks" goto bak2

Цитата Iska:
if not exist "%bak%\Bookmarks" goto bak1 else goto bak2
»
»
Это все лирика
Не работают :bak2 и :rest

Попробую пойти обходным путем и сделаю проверку по размеру файла, тему пока не закрываю.

Текущая версия файла
Скрытый текст
@echo off
SetLocal
rem расположение файла закладок хрома
set sourc="%UserProfile%\AppData\Local\Google\Chrome\User Data\Default\"
rem расположение для резервных копий
set bak="%UserProfile%\ChromBacup\"

if not exist "%bak%" md "%bak%"
pause
rem проверка бекапа закладок
:sw
if not exist "%bak%\Bookmarks" goto bak1
if exist "%bak%\Bookmarks" goto bak2

:bak1
cd %sourc% copy /y "Bookmarks" "%bak%"
rem первая копия создана
pause
goto sw

:bak2
rem копирование начато
if exist "%bak%\Bookmarks" for %%A in ("%sourc%\Bookmarks") do echo %%~tA |>nul find "%date%" || >nul copy /y "Bookmarks" "%sourc%" "%bak%" || goto rest
rem копирование завершено
pause
exit

:rest
rem востановление начато
if exist "%sourc%\Bookmarks" for %%A in ("%bak%\Bookmarks") do echo %%~tA |>nul find "%date%" || >nul copy /y "Bookmarks" "%bak%" "%sourc%"
rem востановление завершено
pause
exit

Отправлено: 12:49, 21-09-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Атриарх:
Поправил
cd %sourc% & copy /y "Bookmarks" "%bak%"
По логике одно и тоже »
По Вашей логике — может быть одно и то же. По логике командного процессора — нет: предыдущие варианты не могли работать, и не работали.

Отправлено: 19:21, 21-09-2016 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Резервирование файлов с сравнением по дате создания

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) DIMM2005 Программное обеспечение Windows 36 03-01-2020 16:54
CMD/BAT - Сортирование файлов по папкам (копирование в многоуровневые папки по дате создания) Systems Скриптовые языки администрирования Windows 18 03-10-2014 11:37
CMD/BAT - [решено] Копирование файлов по дате создания Syna Скриптовые языки администрирования Windows 27 23-05-2013 14:02
CMD/BAT - Переименование группы файлов по дате создания Serg2010 Скриптовые языки администрирования Windows 8 14-04-2012 00:40
Переименование группы файлов по дате создания Serg2010 AutoIt 1 10-04-2012 10:25




 
Переход