|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - копирование по сети с заменой на новые файлы. |
|
CMD/BAT - копирование по сети с заменой на новые файлы.
|
Старожил Сообщения: 225 |
Подскажите как батником скопировать папку по сети, но не добавлять, а заменять. Может сначала удалять содержимое, а потом копировать?
Вот скрипт, который работает сейчас. @echo off set bkroot=\\192.168.0.199\bk D: cd D:\SQL_BACKUP for /d %%i in (*) do ( cd %%i call :vmove %%i cd .. ) goto :eof :vmove set bkdir=%bkroot%\sql\%1 md %bkdir% 2>nul for %%F in (*) do ( xcopy /Y %%F %bkdir% && del %%F ) |
|
Отправлено: 09:43, 13-07-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать 1. Поменяйте местами "D:" и "cd D:\SQL_BACKUP" - если текущим для диска D: окажется уже не существующий каталог, то перехода в нужный каталог может не произойти, поэтому сначала назначается каталог, а затем осуществляется переход на диск (в свежих версиях винды переход произойдет еще при смене каталога)
2. Уточните, плиз, что Вы подразумеваете под "добавлением"? Ваша команда xcopy должна именно заменять уже имеющиеся файлы! ![]() * Если речь идет о том, чтобы файлы в бэкапе, скопированные ранее и уже несуществующие в исходнике также удалялись, то вполне достаточно (имхо) перед "md %bkdir% 2>nul" добавить удаление этого самого каталога: rd /s /q %bkdir% 2>nul |
------- Отправлено: 14:49, 13-07-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата NiOl:
|
|
Отправлено: 20:11, 14-07-2010 | #3 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Iska, точно сказать не могу, еще с w98 приучил себя в батниках сначала менять путь, а потом уже переходить на диск, а тут случайно обнаружил (уже на XP SP2), что при выполнении "CD Disk:\Path" сменился текущий диск.
|
------- Отправлено: 00:39, 16-07-2010 | #4 |
ИО Капитана Очевидности Сообщения: 5387
|
Профиль | Отправить PM | Цитировать Цитата Trinux:
- копировать в папку - копировать файлы из подкаталогов - перезаписывать файлы - копировать только файлы, уже существующие в конечной папке (оно?) - копировать только новые файлы - копировать скрытые/системные файлы - продолжать копирование при ошибках |
||
------- Отправлено: 06:05, 16-07-2010 | #5 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать Цитата NiOl:
![]() El Scorpio, еще бы ключ /Z добавить - специально для сети. ![]() |
|
Отправлено: 11:02, 17-07-2010 | #6 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать нужно скопировать папку через сеть на другую машину, дайте плиз исходник.
|
Последний раз редактировалось kyle21, 21-07-2010 в 10:41. Отправлено: 10:04, 21-07-2010 | #7 |
ИО Капитана Очевидности Сообщения: 5387
|
Профиль | Отправить PM | Цитировать kyle21, скопировать папку по сети можно двумя способами
1. Просто указать UNC-путь - xcopy ЧТО \\ИМЯ_КОМПЬЮТЕРА\КУДА ПАРАМЕТРЫ 2. Примонтировать сетевую папку, как сетевой диск командами subst или net use, скопировать файлы и отмонтировать сетевой диск |
------- Отправлено: 01:05, 23-07-2010 | #8 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Если копируем с локального диска на сетевую шару, то можно воспользоваться такой вкусностей, как PushD/PopD - тем более, что сохранненные ею пути стеккируются:
@Echo off set Src=<адрес Откуда> set Dst=<адрес Куда> Pushd %Src% set Src=%CD% Push %Dst% xcopy %Src% /I /E /Y /U /D /H /C /Z Popd Popd 1. Вы качаете по сети (возможно даже по перегруженной сети) данные к себе, а затем от себя 2. Серваки частенько соединены между собой более шустрым свичем, а то и имеют дополнительную, отдельную сеть (для скорости) - уточните у Вашего админа. Поэтому удобнее копировать по сети ТОЛЬКО ОДИН раз: сразу с сервера на сервер, минуя Ваш комп. для этого надо: 1. Соответствующие права на серваках 2. Скачать с сайта "мелкомягких" PSExec из набора PSTools. Этот же батник запускаете удаленно с любого из серверов: psExec \\Server -u Admin -p Password -c -v MyBatchFile.bat MyBatchFile.bat |
------- Отправлено: 18:50, 23-07-2010 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Версия Dr.Web 6.0: новые возможности, новые компоненты, новые продукты | OSZone News | Новости информационных технологий | 0 | 15-03-2010 20:30 | |
Доступ - Винда постоянно шифрует все новые файлы | tr0nik | Microsoft Windows 2000/XP | 3 | 30-01-2009 12:07 | |
Разное - Копирование файлов из локальной сети | Awes | Microsoft Windows Vista | 5 | 14-08-2007 21:33 | |
После обновления Offic'a нужно ли делать новые *.OPS и *.MST файлы | type | Автоматическая установка Windows 2000/XP/2003 | 0 | 19-11-2004 12:02 | |
Копирование файлов в сети | hameg | Сетевые технологии | 1 | 18-06-2004 11:06 |
|