错误'共享违规'Xcopy错误消息

时间:2013-11-22 21:40:36

标签: windows batch-file sharing xcopy

我正在运行批处理脚本(在计算机A上)。该脚本将几个文件从另一台计算机(计算机B)复制到计算机A.当运行批处理脚本时,它报告由于“共享冲突”而无法将计算机B中的某些文件复制到其自己的目录中。

通过阅读其他stackoverflow页面,我发现当另一个程序锁定文件时(另一个程序当前正在使用/访问该文件),会发生这种情况。但是,我可以进入计算机B并删除计算机A声称被锁定的文件(由于共享违规)。

我能想到的唯一可能是发生的事情是计算机A上的批处理脚本在早期命令中锁定文件(不知何故),而这个早期的命令是锁定文件的?但我的批处理脚本命令是串行运行的,除非另有说明。

以前有没有人遇到这个问题?该脚本将在一两周前成功复制而不会共享冲突。脚本中没有发生任何更改。

8 个答案:

答案 0 :(得分:27)

经过多次试验和错误,我能够确定为什么会收到共享违规行为

我正在将文件从计算机B复制到计算机A

我认为发生共享违规是因为计算机B不允许我复制这些文件[存储在其硬盘上]。

实际上,计算机A上的目录(计算机复制到)有我无法写的文件。这就是我收到共享违规行为的原因。

计算机A目录中的一个文件是一个可执行的任务,我认为它已被杀死(taskkill)。但是,这个可执行文件在taskkill中被忽略了(实际上由于某种原因没有在任务管理器中列出)进程,并且该程序仍在运行(文件正在使用中)。因此,当我尝试覆盖该文件时,xcopy被拒绝访问以覆盖此文件/可执行文件,从而导致共享冲突。

我的印象是,如果计算机B上的文件不允许发生复制,则只会在xcopy期间发生共享冲突。

答案 1 :(得分:6)

大多数时候遇到此问题是因为另一个可执行程序(exe)以某种方式使用您要复制的文件。只需使用任务管理器终止程序,副本就可以运行。

答案 2 :(得分:2)

我在批处理文件中遇到了与xcopy相同的问题,并发现导致共享冲突的文件设置了只读属性。删除只读属性允许复制文件。

我应该注意到我已经使用/ R开关和xcopy来覆盖只读文件。我还发现该文件已经在目标文件夹中,并且设置了只读属性,并且在成功进行xcopied之后,目标文件上的Read Only已被重置。我还需要进一步调查。 / K开关可能会阻止这种情况。

另外值得注意的是,我的批处理文件包含一系列xcopy语句。共享冲突导致第一行崩溃,但允许批处理文件继续到后续的xcopy行。由于共享违规消息已从屏幕上滚动,因此错误在相当长的一段时间内未被注意到。即使发生错误,我也可以尝试使用/ C开关继续复制。

我希望这可能有助于遇到此问题的其他人。

答案 3 :(得分:2)

有时文件/目录可能暂时不可用/被另一个进程锁定。如果您的批处理程序在此刻尝试复制,则会导致"未知错误/共享违规"。

使用robocopy代替" xcopy / copy"在这种情况下可能更相关,因为它不会立即失败,但在失败之前会重试几次。

答案 4 :(得分:1)

对我来说,这是在我尝试将war文件复制到tomcat目录时发生的。我一直在检查,确实已经停止了tomcat。问题是我在7zip中打开war文件,因为我正在检查内容。我离开后关闭了7zip和问题。

现在很明显,发生这种情况时并非如此。

答案 5 :(得分:1)

dependencies: image_picker: ^0.5.0 开关为我解决了此问题。然后Xcopy跳过了其他程序打开的文件,然后继续。

答案 6 :(得分:1)

我遇到了同样的问题...问题文件是一张Excel工作表。问题的原因是,我要复制的文件是由我的同事打开的。值得一提的是,我正在将数据从工作站复制到共享文件夹。因此xcopy无法覆盖它。

答案 7 :(得分:0)

如果我以管理员身份运行.BAT文件,则“访问被拒绝” 消失了。

一些行为!文件由后台SQL保持打开状态,并为每个文件提供“违反共享” 消息。我杀死了后台SQL进程,并且没有问题地复制了文件。

不确定robocopy是否会起作用;此时,我仍在使用Xcopy。