Войти

Показать полную графическую версию : Bat-файл на создание точной копии папки


XeaL
06-04-2012, 18:36
Сам веб-программист. Батники со студенчества не писал, а тут на работе столкнулся с задачкой.
Есть две папки. Одна должна быть по содержанию точной копией второй.
Надо написать в батнике, что
- существующие в первой папке файлы надо просто скопировать во вторую,
- созданные в первой папке - скопировать во вторую,
- удаленные в первой - удалить во второй

DesmondTruman
07-04-2012, 02:59
А как вы себе это представляете? Батник будет постоянно парсить каталог на предмет появления\удаления файлов или какой-то интервал времени между пунктами?
И пункты кстати, парадоксальные для одного сценария.
В общем, если не принципиально, то можно так, разделив на 3 батника:

Батник для первого пункта:
@echo off
set "first=Полный\путь\до\первого\каталога"
set "second=Полный\путь\до\второго\каталога"
xcopy "%first%" "%second%" /h /y
exit
Батник для второго пункта:
@echo off
set "first=Полный\путь\до\первого\каталога"
set "second=Полный\путь\до\второго\каталога"
for %%i in ("%first%\*.*") do if not exist "%third%\%%~nxi" copy "%%i" "%second%\%%~nxi"
exit
Батник для третьего пункта:
@echo off
set "first=Полный\путь\до\первого\каталога"
set "second=Полный\путь\до\второго\каталога"
for %%i in ("%second%\*.*") do if not exist "%first%\%%~nxi" del "%second%\%%~nxi" /f /q
exit

Как-то так...

Iska
07-04-2012, 03:09
Одна должна быть по содержанию точной копией второй. »
Автору, скорее, нужно банальное приложение для синхронизации.

Alex-in-Side
26-04-2012, 10:58
Можно было бы воспользоваться любой фри прогой для бакапа/синхронизации.

Чтоб не засорять форум спрошу в этой теме.
Программа Cisco VPN client, который отваливается от сервера раз в 20 мин. На сервере прова изменения невозможны, поэтому все настройки идут от меня. Перенастроил ini циски на автореконнект.
После подключения выскакивает баннер типа это защищенное подключение, нажмите confirm если вы уверенны. Ну что-то вроде этого.

Есть VBS script который этот confirm нажимает:

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
constWaitTime = 100
VarCount = 0
Do
WScript.Sleep 1000
check = objShell.AppActivate("VPN Client")
If check = True Then
objShell.SendKeys "{ENTER}"
Exit Do
End If
Loop

и есть бат, который постоянно поддерживает vbs живым. Т.е. тупо крутит его по кругу:
@echo off
start /wait "2000" confirm.vbs
@echo OK...
start.bat - батник, опять таки тупо, зациклен сам на себя.

Но он вылетает через несколько часов. от 6 до 9, по разному.
Понимаю, что что-то не так наваял с батником, но вот что - не соображу... Прошу помощи.

ferget
26-04-2012, 11:24
создать задачу в планировщике заданий, без bat-файла?

Alex-in-Side
26-04-2012, 12:03
создать задачу в планировщике заданий, без bat-файла? »
через стандартную утилиту виндовса vbs срабатывает только один раз и ни фига не замечает, что циска отвалилась. Нужно чтобы скрипт раз в 10-15 минут оглядывался. Все ли в порядке, или пора на Don't Suspend нажать, а затем на Confirm?

Alex-in-Side
26-04-2012, 13:04
Народ! хелп! Никаких идей? мне завтра уезжать и очень нужно, чтоб эта циска работала без контроля хотя бы дня три.




© OSzone.net 2001-2012