【问题标题】:False 'Sharing Violation' Xcopy error message错误的“共享冲突”Xcopy 错误消息
【发布时间】:2013-11-22 21:40:36
【问题描述】:

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

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

我能想象的唯一可能发生的事情是计算机 A 上的批处理脚本在较早的命令期间(以某种方式)锁定了文件,而这个较早的命令是什么锁定了文件?但是我虽然批处理脚本命令是串行运行的,除非另有说明。

以前有人遇到过这个问题吗?该脚本将在大约一两周前成功复制而不会共享违规行为。脚本中没有发生任何更改。

【问题讨论】:

  • 删除共享不同于读取共享。
  • 也许有用 http://techinfo.laurenceholbrook.com/FolderSharingError.html

标签: windows batch-file sharing xcopy


【解决方案1】:

大多数情况下,您遇到此问题是因为另一个可执行程序 (exe) 以某种方式使用了您要复制的文件。只需使用任务管理器杀死程序,副本就可以工作了。

【讨论】:

    【解决方案2】:

    /C 开关为我解决了这个问题。 Xcopy 然后跳过其他程序打开的文件并继续。

    【讨论】:

      【解决方案3】:

      经过多次尝试和错误,我能够确定为什么我得到了共享违规

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

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

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

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

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

      【讨论】:

      • 结束:分享违规信息不是假的......只是没有完全理解。
      • 编写这个通用实用程序的天才无法抽出 15 秒来编写更有意义的错误消息
      • 我知道这是一篇旧帖子,但我突然遇到了一些令人费解的问题。我在 15 年前整理了一些备份批处理文件,并一直使用它们进行每小时、每周和每月的备份。每小时让我的便携式驱动器保持最新状态,因此我可以在旅途中访问所有重要文件。备份完成识别存档位。突然,在五个主要目录中,它只从一个 .directory 复制文件,这以共享冲突结束。该目录之前和之后的其他目录仅显示复制的 0 个文件。 Win 7 操作系统。
      【解决方案4】:

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

      现在很明显,发生这种情况时就不那么明显了。

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题...有问题的文件是一个 Excel 表格。问题的原因是,我要复制的那个文件被我的同事打开了。值得一提的是,我正在将数据从我的站复制到共享文件夹。所以 xcopy 不能覆盖它。

        【讨论】:

          【解决方案6】:

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

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

          另外值得注意的是,我的批处理文件包含一系列 xcopy 语句。共享冲突使第一行崩溃,但允许批处理文件继续到后续的 xcopy 行。该错误已经发生了很长一段时间,因为共享违规消息已从屏幕上滚动出来。即使出现错误,我也可以尝试使用 /C 开关继续复制。

          我希望这可以帮助遇到此问题的其他人。

          【讨论】:

          • 我使用/e /q /h /r /y 选项,有时会出现Sharing violation 错误。
          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

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

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

            不确定 robocopy 是否有效;此时我仍在使用 Xcopy。

            【讨论】:

              猜你喜欢
              • 2018-04-30
              • 1970-01-01
              • 2013-01-01
              • 1970-01-01
              • 2020-05-29
              • 2020-07-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多