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

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

XeaL 06-04-2012 18:36 1894794

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

DesmondTruman 07-04-2012 02:59 1894961

А как вы себе это представляете? Батник будет постоянно парсить каталог на предмет появления\удаления файлов или какой-то интервал времени между пунктами?
И пункты кстати, парадоксальные для одного сценария.
В общем, если не принципиально, то можно так, разделив на 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 1894965

Цитата:

Цитата XeaL
Одна должна быть по содержанию точной копией второй. »

Автору, скорее, нужно банальное приложение для синхронизации.

Alex-in-Side 26-04-2012 10:58 1906075

Можно было бы воспользоваться любой фри прогой для бакапа/синхронизации.

Чтоб не засорять форум спрошу в этой теме.
Программа 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 1906088

создать задачу в планировщике заданий, без bat-файла?

Alex-in-Side 26-04-2012 12:03 1906106

Цитата:

Цитата ferget
создать задачу в планировщике заданий, без bat-файла? »

через стандартную утилиту виндовса vbs срабатывает только один раз и ни фига не замечает, что циска отвалилась. Нужно чтобы скрипт раз в 10-15 минут оглядывался. Все ли в порядке, или пора на Don't Suspend нажать, а затем на Confirm?

Alex-in-Side 26-04-2012 13:04 1906144

Народ! хелп! Никаких идей? мне завтра уезжать и очень нужно, чтоб эта циска работала без контроля хотя бы дня три.


Время: 22:57.

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