it-swarm.com.de

Falsche Xcopy-Fehlernachricht 'Sharing Violation'

Ich führe ein Batch-Skript (auf Computer A) aus. Das Skript kopiert mehrere Dateien von einem anderen Computer (Computer B). Wenn das Batch-Skript ausgeführt wird, wird gemeldet, dass einige Dateien von Computer B nicht in die eigenen Verzeichnisse kopiert werden können. 

Beim Lesen anderer stackoverflow-Seiten sehe ich, dass dies geschieht, wenn die Datei in einem anderen Programm gesperrt ist (ein anderes Programm verwendet derzeit/greift auf die Datei zu). Ich kann jedoch auf Computer B gehen und die Datei löschen, von der behauptet wurde, dass Computer A aufgrund von Verstößen gegen die Freigabe gesperrt wurde. 

Das einzige, was ich mir vorstellen kann, ist, dass das Batch-Skript auf Computer A die Datei (irgendwie) während eines früheren Befehls sperrt. Batch-Skriptbefehle werden jedoch seriell ausgeführt, sofern nicht anders angegeben. 

Hat jemand dieses Problem schon mal gehabt? Das Skript konnte erfolgreich kopiert werden, ohne dass Verstöße vor etwa ein oder zwei Wochen freigegeben wurden. Es sind keine Änderungen im Skript aufgetreten. 

12
Fractal

Nach langem Ausprobieren konnte ich feststellen, warum ich eine gemeinsame Verletzung erhielt

Ich habe Dateien von Computer B auf Computer A kopiert

Ich dachte, die Verstöße gegen die Freigabe würden vorkommen, weil Computer B es mir nicht erlaubte, eine Kopie dieser Dateien zu erstellen [auf seiner Festplatte gespeichert]. 

Tatsächlich hatte das Verzeichnis auf Computer A (Computer kopiert nach) Dateien, die ich nicht überschreiben konnte. Deshalb bekam ich die gemeinsame Verletzung. 

Eine der Dateien im Verzeichnis auf Computer A war eine ausführbare Aufgabe, von der ich dachte, dass sie getötet wurde (Taskkill). Diese ausführbare Datei wurde jedoch im Taskkill-Prozess (der aus irgendeinem Grund nicht im Task-Manager aufgeführt war) übersehen, und dieses Programm wurde noch ausgeführt (die Datei wurde gerade verwendet). Beim Versuch, die Datei zu überschreiben, wurde xcopy der Zugriff zum Überschreiben dieser Datei/ausführbaren Datei verweigert, was zu gemeinsamen Verstößen führte.

Ich hatte den Eindruck, dass das Teilen von Verstößen nur während der xcopy auftreten würde, wenn die Dateien auf Computer B die Kopie nicht zulassen würden.

24
Fractal

Wenn Sie dieses Problem haben, liegt dies meistens daran, dass ein anderes ausführbares Programm (exe) die Dateien verwendet, die Sie kopieren möchten. Beenden Sie einfach das Programm mit dem Task-Manager und die Kopie wird funktionieren.

6
Thiago Burgos

Ich bin mit xcopy in einer Batchdatei auf dasselbe Problem gestoßen und habe festgestellt, dass für die Datei, die die Zugriffsverletzung verursacht, das Attribut Read Only (Nur Lesen) gesetzt wurde. Durch das Entfernen des Schreibschutzattributs konnte die Datei kopiert werden.

Ich sollte beachten, dass ich bereits den Schalter/R mit xcopy verwendet habe, um schreibgeschützte Dateien überschreiben zu können. Ich habe auch festgestellt, dass sich die Datei bereits im Zielordner befand und das Read Only-Attribut festgelegt war. Es wurde angezeigt, dass Read Only für die Zieldatei zurückgesetzt wurde, nachdem sie erfolgreich kopiert wurde. Ich muss das noch weiter untersuchen. Der Schalter/K kann dies verhindern.

Erwähnenswert ist auch, dass meine Batchdatei eine Reihe von xcopy-Anweisungen enthielt. Die Freigabeverletzung stürzte in der ersten Zeile ab, die Batchdatei konnte jedoch mit den nachfolgenden Xcopy-Zeilen fortgesetzt werden. Der Fehler war längere Zeit unbemerkt aufgetreten, da die Meldung über die Freigabe der Zugriffsverletzung vom Bildschirm gescrollt wurde. Ich könnte auch mit dem Schalter/C versuchen, den Kopiervorgang fortzusetzen, selbst wenn Fehler auftreten.

Ich hoffe, dass dies anderen helfen kann, die auf dieses Problem stoßen.

2
Bob

Manchmal kann eine Datei/ein Verzeichnis vorübergehend nicht verfügbar sein/von einem anderen Prozess gesperrt werden. Wenn Ihr Stapelverarbeitungsprogramm zu diesem Zeitpunkt zu kopieren versucht, führt dies zu einem "unbekannten Fehler/gemeinsamen Verstoß".

Die Verwendung von robocopy anstelle von "xcopy/copy" ist in diesem Fall möglicherweise relevanter, da sie nicht sofort fehlschlägt, sondern vor dem Fehlschlagen ein paar Mal wiederholt wird.

Für mich ist dies der Fall, als ich versuchte, eine Kriegsdatei in ein Tomcat-Verzeichnis zu kopieren. Ich überprüfte ständig, ob Tomcat tatsächlich angehalten wurde. Das Problem war, ich hatte die Kriegsdatei in 7Zip geöffnet, als ich den Inhalt untersuchte. Ich habe 7Zip und die Ausgaben geschlossen, wenn ich weg war.

Offensichtlich jetzt, nicht so sehr, als dies geschah.

1
Pete B.

Ich stieß auf das gleiche Problem ... Die problematische Datei war eine Excel-Tabelle. Die Ursache des Problems war, dass die Datei, die ich kopieren wollte, von meinem Kollegen geöffnet wurde. Es ist gut zu erwähnen, dass ich Daten von meiner Station in den freigegebenen Ordner kopiere. Xcopy kann es also nicht überschreiben.

Der /C-Schalter hat das Problem für mich gelöst. Xcopy übersprang dann die Dateien, die von anderen Programmen geöffnet wurden, und ging weiter.

1
Andrej

Ich hatte "Zugriff verweigert" das ging weg, wenn ich die .BAT-Datei als Administrator ausführte.

Einige ACT! Dateien wurden von SQL im Hintergrund geöffnet gehalten und gaben für jede Datei die Meldung "Freigabeverletzung". Ich habe die SQL-Prozesse im Hintergrund beendet und die Dateien ohne Probleme kopiert.

Ich bin mir nicht sicher, ob der Kopiervorgang funktioniert hätte. Ich verwende derzeit noch Xcopy.

0
Bardi