什么导致xcopy告诉我拒绝访问?

Owe*_*enP 18 windows cmd xcopy

我们的一个解决方案的postbuild任务使用xcopy将文件移动到构建工件的公共目录中.出于某种原因,在我的计算机上(以及在我测试的VM上),xcopy失败并显示"拒绝访问".以下是我尝试隔离问题所做的工作:

  • 我尝试了正常的副本; 这很有效.
  • 我仔细检查了所讨论的文件都不是只读的.
  • 我检查了源文件夹和目标文件夹的权限; 我完全控制了两者.
  • 我尝试从命令行调用xcopy,以防VS构建进程锁定文件.
  • 我使用Unlocker和Process Explorer来确定源文件上没有锁.

我错过了什么,除了涉及计算机的偏执阴谋理论让我?这种情况发生在我的开发机器和干净的虚拟机上,但项目中的任何其他人都不会发生这种情况.

Owe*_*enP 18

问题解决了; 这个拼图有两个部分.

/ O开关需要在Vista上提升.另外,我注意到xcopy在Vista中已被弃用,而不是robocopy.现在我和我们的构建工程师讨论这件事.


Tam*_*mir 15

/ r =使用此选项覆盖目标中的只读文件.如果要在目标中覆盖只读文件时不使用此选项,系统将提示您"拒绝访问"消息,并且xcopy命令将停止运行.

这是我对此错误的解决方法.

资源

  • 谢谢,这对我很有帮助. (2认同)

iNo*_*oob 6

您需要以管理员身份运行 XCOPY,这是没有办法解决的。

如果您不想以管理员身份运行副本,则必须改用ROBOCOPY

但是请注意,使用 ROBOCOPY 时很容易使用/COPYALL开关,它也复制审计信息并需要“管理审计用户权限”,这再次邀请您以管理员身份运行作为快速解决方案。如果你不想运行副本管理员,那么不使用/COPYALL(或 /Copy:DATSOU)开关。而是使用/Copy:DATSO,因为 U 代表审计。

另请注意,如果您要从 NTFS 复制到 FAT 文件系统,则无法“将 NTFS 安全复制到目标目录/文件”。