Войти

Показать полную графическую версию : [решено] копирование файлов по сети через xcopy


alww
13-03-2012, 08:04
Добрый день.

Собственно два вопроса.

1. хочу по сети закопировать файлы с своего компьютера на другие
список компьютеров находится в файле comps.txt
машины в домене , я работаю из под администратора домена

пишу батник такого содержания

FOR /F " tokens=1 " %%i in (comps.txt) do (
xcopy /Y /E /H "C:\bat\Files" "%%i\c$\Files"
)

т.е. для всех компов из файла comps.txt последовательно копирую содержимое моей локальной папки C:\bat\Files вместе со всеми вложенными папками и файлами на целевой компьютер в папку c:\Files

проверяю - копирует , НО не все. На одном из файлов вылетает с ошибкой "отказано в доступе".

пробую вручную закопировать этот же набор файлов : открываю в проводнике целевой компьютер \\target\c$\Files , копирую , все копируется на ура.

вопрос : почему при копировании из батника ругается на права (хотя проверил права доступа на файлы, которые копируются нормально и на те . которые не копируются из за ошибки - они идентичны) , при этом при копировании вручную все копируется без ошибок

2. Собственно копирование , описанное выше - это обновление программы.
Но перед обновление надо прибить экземпляр программы , запущенной на клиентской машине , иначе не все файлы скопируются.

Возникла мысль решить эту задачу через taskkill.exe

Пробую

FOR /F " tokens=1 " %%i in (comps.txt) do (
%%i\c$\Windows\System32\taskkill /f /im proga.exe
xcopy /Y /E /H "C:\bat\Files" "%%i\c$\Files"
)
т.е. сначала убиваю процесс proga.exe , потом копирую файлы
но не работает , пишет "Ошибка : Библиотека поставщика проинициализирована неправильно"

опять же , вручную на клиентской машине из командной строки пишу c:\Windows\System32\taskkill /f /im proga.exe - все отрабатывает на ура , процесс убивается.

в чем ошибки ?

Спасибо.

Petya V4sechkin
13-03-2012, 08:34
%%i\c$\Windows\System32\taskkill /f /im proga.exe
Параметр /s предназначен для выполнения на удаленном компьютере:
taskkill /s компьютер /f /im proga.exe

alww
13-03-2012, 09:13
Параметр /s предназначен для выполнения на удаленном компьютере: »

Круто , спасибо , помогло.

А по поводу ошибки доступа есть мысли куда копать ?

Petya V4sechkin
13-03-2012, 09:20
alww, если у файла атрибут "Только для чтения", поможет опция /R в команде Xcopy.

alww
13-03-2012, 09:47
если у файла атрибут "Только для чтения", поможет опция /R в команде Xcopy. »

помогло :)

Спасибо




© OSzone.net 2001-2012