Message d'erreur False 'Partage de violation' Xcopy
Je suis en cours d'exécution d'un script batch (sur Un ordinateur). Le script copie plusieurs fichiers à partir d'un autre ordinateur (un ordinateur B). Lorsque le script batch est exécuté, il signale qu'il est impossible de xcopy certains fichiers de l'ordinateur B à ses propres répertoires en raison de "Violations de Partage'.
En lisant d'autres stackoverflow pages, je vois que ce qui se passe quand un autre programme a verrouillé le fichier (un autre programme est actuellement à l'aide de/l'accès au fichier). Cependant, je peux aller sur l'ordinateur B et supprimez le fichier de l'ordinateur sur lequel Un revendiquée a été verrouillé (en raison de violations de partage).
La seule chose que je peux imaginer peut-être ce qui se passe est que le script de commandes sur l'ordinateur A est de verrouiller le fichier (en quelque sorte) lors d'une précédente commande et ce plus tôt commande est ce qui est de verrouiller le fichier? Mais j'ai bien batch les commandes de script exécuté en série, sauf indication contraire.
Quelqu'un a déjà eu ce problème avant? Le script de copie avec succès sans les violations de partage sur une ou deux semaines. Aucun changement n'est survenu dans le script.
source d'informationauteur Fractal
Vous devez vous connecter pour publier un commentaire.
Après beaucoup d'essais et d'erreurs, j'étais en mesure de déterminer pourquoi j'étais partagée violation
J'ai été la copie de fichiers de l'ordinateur B à l'ordinateur d'Un
Je pensais que le partage des violations se produisent parce que l'ordinateur B ne me permettait pas de faire une copie de ces fichiers [stockés sur son disque dur].
En réalité, le répertoire sur l'ordinateur Un ordinateur (copie) a des fichiers que je ne pouvais pas écrire dessus. C'est pourquoi j'ai fait le partagé violation.
L'un des fichiers dans le répertoire sur l'ordinateur A été un exécutable tâche dont je pensais qu'ils avaient été tués (taskkill). Cependant, cet exécutable obtenu négligé dans la taskkill (en fait, n'était pas répertoriée dans le gestionnaire de tâche pour une raison quelconque), et ce programme est toujours en cours (le fichier est en cours d'utilisation). Donc, quand j'ai essayé de remplacer le fichier, xcopy a refusé l'accès à écraser ce fichier/exécutable, résultant en commun des violations.
J'étais sous l'impression que le partage des violations se produisent uniquement lors de la commande xcopy si les fichiers sur l'ordinateur B ne permet pas la copie de se produire.
La plupart du temps quand vous avez ce problème, c'est parce qu'un autre programme exécutable (exe) est en quelque sorte à l'aide de fichiers que vous voulez copier. Il suffit de tuer le programme en utilisant le gestionnaire des tâches et la copie de travail.
J'ai rencontré le même problème avec xcopy dans un fichier de commandes et a découvert que le fichier à l'origine de la violation de partage a l'attribut Lecture Seule à définir. Suppression de l'attribut Lecture Seule autorisée le fichier à copier.
Je dois dire que j'étais déjà en utilisant le commutateur /R avec la commande xcopy pour permettre l'écrasement de lire uniquement les fichiers. J'ai aussi découvert que le fichier était déjà dans le dossier de destination avec l'attribut Lecture Seule, et il semble qu'en Lecture Seule a été réinitialisé sur le fichier cible après qu'il a été xcopied avec succès. J'ai encore besoin d'étudier cette question plus loin. Le commutateur /K peut l'en empêcher.
Également intéressant de noter, c'est que mon fichier de commandes contenait une série de déclarations xcopy. La violation de partage s'est écrasé la première ligne, mais a permis le fichier de commandes pour poursuivre ultérieurement xcopy lignes. L'erreur qui avait été fait inaperçue pendant un certain temps, comme la violation de partage message a été affichée à l'écran. Je pourrais aussi essayer d'utiliser le commutateur /C pour continuer à copier même si des erreurs se produisent.
J'espère que cela peut aider d'autres personnes qui s'exécutent sur cette question.
Parfois d'un fichier/répertoire peut être temporairement indisponible/verrouillé par un autre processus. Si votre programme de commandes essaie de copier à cet instant, il en résultera une "erreur inconnue/shared violation".
À l'aide de robocopy au lieu de "xcopy/copie" peut être plus pertinent dans ce cas, comme il ne manque pas immédiatement, mais réessaie une couple de fois avant d'échouer.
Pour moi cela s'est produit lorsque je tente de copier un fichier war dans un répertoire de tomcat. J'ai gardé la vérification de voir que, en effet, tomcat a été arrêté. Le problème est que j'avais de la guerre d'ouverture de fichier dans 7zip que j'étais de l'examen du contenu. J'ai fermé 7zip et les problèmes lorsqu'il est loin.
Évident aujourd'hui, pas tellement quand ce qui se passait.