Ложное сообщение "Нарушение совместного доступа" Xcopy

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

Читая другие страницы stackoverflow, я вижу, что это происходит, когда другая другая программа заблокировала файл (другая программа в настоящее время использует/получает доступ к файлу). Однако я могу зайти на компьютер B и удалить файл, который, по утверждению компьютера A, был заблокирован (из-за нарушения совместного доступа).

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

Кто-нибудь когда-либо имел эту проблему раньше? Сценарий будет успешно скопирован без каких-либо нарушений примерно неделю или две назад. В сценарии не произошло никаких изменений.

Ответ 1

После долгих проб и ошибок я смог определить, почему я получаю общее нарушение

Я копировал файлы с компьютера B на компьютер A

Я думал, что нарушения совместного доступа происходят, потому что компьютер B не позволяет мне сделать копию этих файлов [сохраненных на жестком диске].

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

Один из файлов в каталоге на компьютере A был исполняемой задачей, которая, как я думал, была убита (taskkill). Однако этот исполняемый файл был упущен в taskkill (фактически не указан в диспетчере задач по какой-либо причине), и эта программа все еще работала (файл использовался). Поэтому, когда я попытался перезаписать файл, xcopy был лишен доступа для перезаписывания этого файла/исполняемого файла, что привело к нарушениям.

У меня создалось впечатление, что нарушение прав доступа происходит только во время xcopy, если файлы на компьютере B не позволят копировать.

Ответ 2

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

Ответ 3

Я столкнулся с той же проблемой с xcopy в пакетном файле и обнаружил, что для файла, вызывающего нарушение доступа, был установлен атрибут Read Only. Удаление атрибута "Только чтение" позволяло скопировать файл.

Я должен отметить, что я уже использовал переключатель /R с помощью xcopy, чтобы разрешить перезаписывать только файлы с правами на чтение. Я также обнаружил, что файл уже находится в папке назначения с атрибутом "Только для чтения", и кажется, что только что прочитанный был reset в целевом файле после успешной xcopied. Мне все еще нужно исследовать это дальше. Переключатель /K может предотвратить это.

Также стоит отметить, что мой командный файл содержал ряд операторов xcopy. Нарушение совместного доступа разбило первую строку, но позволило пакетному файлу продолжить последующие строки xcopy. Ошибка прошла незаметно в течение некоторого времени, так как сообщение о нарушении доступа прокручивалось с экрана. Я также могу попробовать использовать переключатель /C для продолжения копирования, даже если возникают ошибки.

Я надеюсь, что это может помочь другим, которые сталкиваются с этой проблемой.

Ответ 4

Иногда файл/каталог может быть временно недоступен/заблокирован другим процессом. Если ваша пакетная программа пытается скопировать в этот момент, это приведет к "неизвестной ошибке/совместному нарушению".

Использование robocopy вместо "xcopy/copy" может быть более актуальным в этом случае, поскольку оно не прерывается немедленно, но повторяет пару времени перед сбоем.

Ответ 5

Переключатель /C решил проблему для меня. Затем Xcopy пропустил файлы, которые были открыты другими программами, и продолжил.

Ответ 6

Для меня это произошло, когда я пытался копировать военный файл в каталог tomcat. Я продолжал проверять, что, действительно, tomcat был остановлен. Проблема в том, что у меня был файл войны, открытый в 7zip, когда я изучал содержимое. Я закрыл 7zip и проблемы, когда прочь.

Теперь видно, что не так много, когда это происходило.

Ответ 7

Я столкнулся с той же проблемой... Проблемным файлом был лист Excel. Причиной проблемы было то, что файл, который я хотел скопировать, был открыт моим коллегой. Стоит упомянуть, что я копирую данные со своей станции в общую папку. Так что xcopy не может переопределить это.

Ответ 8

У меня было "Отказано в доступе", которое исчезло, если я запустил файл .BAT от имени администратора.

Некоторые ACT! файлы оставались открытыми с помощью фонового SQL и давали сообщение "Нарушение общего доступа" для каждого файла. Я убил фоновые процессы SQL и скопировал файлы без проблем.

Не уверен, что робокопия сработала бы; Я все еще использую Xcopy на данный момент.