![]() |
копирование по сети с заменой на новые файлы.
Подскажите как батником скопировать папку по сети, но не добавлять, а заменять. Может сначала удалять содержимое, а потом копировать?
Вот скрипт, который работает сейчас. @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 ) |
1. Поменяйте местами "D:" и "cd D:\SQL_BACKUP" - если текущим для диска D: окажется уже не существующий каталог, то перехода в нужный каталог может не произойти, поэтому сначала назначается каталог, а затем осуществляется переход на диск (в свежих версиях винды переход произойдет еще при смене каталога)
2. Уточните, плиз, что Вы подразумеваете под "добавлением"? Ваша команда xcopy должна именно заменять уже имеющиеся файлы! :dont-know * Если речь идет о том, чтобы файлы в бэкапе, скопированные ранее и уже несуществующие в исходнике также удалялись, то вполне достаточно (имхо) перед "md %bkdir% 2>nul" добавить удаление этого самого каталога: rd /s /q %bkdir% 2>nul |
Цитата:
|
Iska, точно сказать не могу, еще с w98 приучил себя в батниках сначала менять путь, а потом уже переходить на диск, а тут случайно обнаружил (уже на XP SP2), что при выполнении "CD Disk:\Path" сменился текущий диск.
|
Цитата:
- копировать в папку - копировать файлы из подкаталогов - перезаписывать файлы - копировать только файлы, уже существующие в конечной папке (оно?) - копировать только новые файлы - копировать скрытые/системные файлы - продолжать копирование при ошибках |
Цитата:
El Scorpio, еще бы ключ /Z добавить - специально для сети. :) |
нужно скопировать папку через сеть на другую машину, дайте плиз исходник.
|
kyle21, скопировать папку по сети можно двумя способами
1. Просто указать UNC-путь - xcopy ЧТО \\ИМЯ_КОМПЬЮТЕРА\КУДА ПАРАМЕТРЫ 2. Примонтировать сетевую папку, как сетевой диск командами subst или net use, скопировать файлы и отмонтировать сетевой диск Код:
subst \\NAME\Folder z: |
Если копируем с локального диска на сетевую шару, то можно воспользоваться такой вкусностей, как PushD/PopD - тем более, что сохранненные ею пути стеккируются:
Код:
@Echo off 1. Вы качаете по сети (возможно даже по перегруженной сети) данные к себе, а затем от себя 2. Серваки частенько соединены между собой более шустрым свичем, а то и имеют дополнительную, отдельную сеть (для скорости) - уточните у Вашего админа. Поэтому удобнее копировать по сети ТОЛЬКО ОДИН раз: сразу с сервера на сервер, минуя Ваш комп. для этого надо: 1. Соответствующие права на серваках 2. Скачать с сайта "мелкомягких" PSExec из набора PSTools. Этот же батник запускаете удаленно с любого из серверов: psExec \\Server -u Admin -p Password -c -v MyBatchFile.bat MyBatchFile.bat |
Время: 18:42. |
Время: 18:42.
© OSzone.net 2001-