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

Показать сообщение отдельно

Старожил


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

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


AHTuKuJIJIeP, сделано неплохо, вот только копия файла уже существует и скрипт не отработает а если убрать проверку существования копии (которая сама не исчезнет), то при повторном запуске твой скрипт заново будет копировать файл.

предлагаю вести лог и по нему и отслеживать была ли сделана копия:
Код: Выделить весь код
@Echo off
SetLocal EnableExtensions

Set File=C:\1\MyFile.dat
Set BackUp=C:\2\

set Msg=Nothing to do
set tm=%time::=-%
set tm=%date:~6,4%-%date:~3,2%-%date:~0,2%_%tm:~0,-3%

set Chk=%tm:~8,2%
if /I %Chk% LSS 20 Goto End

set Chk=%tm:~0,7%
for /f "Tokens=1,2* Delims=:" %%D in ('FindStr /i /c:"Synchronization Done" %~dpn0.log') do set Last=%%D
set Last=%Last:~0,7%
if "%Chk%"=="%Last%" Goto End

copy /y %File% %BackUp%
if %ErrorLevel%==0 (set Msg=Synchronization Done
) else set Msg=Synchronization Failed !!!

:End
echo %tm%: %Msg%>>%~dpn0.log
* 2 замечания (фичи ):
1. если копия файла окажется защищена или занята, то копирования не произойдет - смотрите лог
2. малость упростил проверку - копирование возможно не с 20 по 30, а просто с 20 (т.е. и 31го тоже)
Если второе замечание критично - легко поправлю проверку.

-------
Как сказало Дерево Дровосеку: "я - пень".

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:53, 03-12-2009 | #3