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

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

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

Аватара для Trinux

Старожил


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

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


Подскажите как батником скопировать папку по сети, но не добавлять, а заменять. Может сначала удалять содержимое, а потом копировать?

Вот скрипт, который работает сейчас.

@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
Благодарности: 108

Профиль | Отправить 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
Благодарности: 8087

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


Цитата NiOl:
в свежих версиях винды переход произойдет еще при смене каталога »
Начиная с каких версий ОС появилось такое поведение?

Отправлено: 20:11, 14-07-2010 | #3


Старожил


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

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


Iska, точно сказать не могу, еще с w98 приучил себя в батниках сначала менять путь, а потом уже переходить на диск, а тут случайно обнаружил (уже на XP SP2), что при выполнении "CD Disk:\Path" сменился текущий диск.

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


Отправлено: 00:39, 16-07-2010 | #4


ИО Капитана Очевидности


Contributor


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

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


Цитата Trinux:
Подскажите как батником скопировать папку по сети, но не добавлять, а заменять. »
xcopy ЧТО КУДА /I /E /Y /U /D /H /C
- копировать в папку
- копировать файлы из подкаталогов
- перезаписывать файлы
- копировать только файлы, уже существующие в конечной папке (оно?)
- копировать только новые файлы
- копировать скрытые/системные файлы
- продолжать копирование при ошибках

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 06:05, 16-07-2010 | #5


Аватара для El Sanchez

Ветеран


Contributor


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

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



Цитата NiOl:
Iska, точно сказать не могу, еще с w98 приучил себя в батниках сначала менять путь, а потом уже переходить на диск, а тут случайно обнаружил (уже на XP SP2), что при выполнении "CD Disk:\Path" сменился текущий диск. »
NiOl, для одновременной смены диска и каталога еще с WinNT для команды CD придуман параметр /D.

El Scorpio, еще бы ключ /Z добавить - специально для сети.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:02, 17-07-2010 | #6


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


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

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


нужно скопировать папку через сеть на другую машину, дайте плиз исходник.

Последний раз редактировалось kyle21, 21-07-2010 в 10:41.


Отправлено: 10:04, 21-07-2010 | #7


ИО Капитана Очевидности


Contributor


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

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


kyle21, скопировать папку по сети можно двумя способами
1. Просто указать UNC-путь - xcopy ЧТО \\ИМЯ_КОМПЬЮТЕРА\КУДА ПАРАМЕТРЫ
2. Примонтировать сетевую папку, как сетевой диск командами subst или net use, скопировать файлы и отмонтировать сетевой диск

Код: Выделить весь код
subst \\NAME\Folder z:
xcopy ЧТО КУДА
subst z: /d

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 01:05, 23-07-2010 | #8


Старожил


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

Профиль | Отправить 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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Версия 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




 
Переход