当前位置: 首页 > 知识库问答 >
问题:

xcopy和Robocopy删除目标文件

鞠自明
2023-03-14

我正在尝试将一些文件从一台服务器复制到另一台服务器的共享文件夹,问题是,它有时会起作用,但通常xcopy和robocopy命令会在失败时删除目标文件,即使备份失败,我也需要这些文件留在那里。

为了深入了解细节,在我运行命令的服务器上(Windows 10),我有一堆Tableau文件(. twbx),这些文件通过. JAR文件进行更新,我每天早上运行一个计划任务。

更新文件后,我使用xcopy将它们复制到另一台服务器的共享中(后来我尝试了Robocopy以查看问题是否停止发生),但当我早上检查时,目标文件丢失了。它偶尔工作,问题是我需要这些文件总是在共享文件夹中。

我的. bat文件如下所示:

我按顺序运行copy命令(每个文件一个,因为它们位于不同的文件夹中)。

Robocopy E:\Tableau\TableauFileFolder \\shareserver\sharefolder\Tableau\TableauFileFolder TableauFile.twbx /mt /r:0 /log+:E:\Tableau\LogFile.log
Robocopy E:\Tableau\TableauFileFolder2 \\shareserver\sharefolder\Tableau\TableauFileFolder2 TableauFile2.twbx /mt /r:0 /log+:E:\Tableau\LogFile.log
Etc...

对于xcopy,我使用:

xcopy /s/y E:\Tableau\TableauFileFolder\TableauFile.twbx \\shareserver\sharefolder\K2BAnalytics\TableauFileFolder

目录结构是这样的,在我运行命令的服务器上:

E:
  |-->Tableau
    |-->ShareFileFolder
      |-->ShareFile.twbx
    |-->ShareFileFolder2
      |-->ShareFile2.twbx

共享服务器:

sharefolder:
  |-->Tableau
    |-->ShareFileFolder
      |-->ShareFile.twbx
    |-->ShareFileFolder2
      |-->ShareFile2.twbx

我的日志文件在丢失的文件上显示此错误:

2020/11/19 04:31:57 ERROR 0 (0x00000000) r E:\Tableau\TableauFileFolder\TableauFile.twbx
The operation completed successfully.

运行这些命令的管理员用户对共享的Tableau文件夹具有完全控制权限。

这个问题我已经有一段时间了,我在任何地方都找不到解决方案。我没有使用/MIR,所以我不知道是什么原因导致目标文件被删除。

共有2个答案

诸葛苏燕
2023-03-14

使用管理员权限运行robocopy源目标/MT:1可以帮您完成这项任务。

在我的类似情况下,源文件被另一个进程锁定,并且:

  • /b如果无法访问目标文件(但需要管理员权限),则使机器人副本保持不变
  • /mt:

当我手动运行机器人拷贝时,我只使用机器人拷贝源目标 /MT: 1看到错误,我可以停止应用程序锁定文件并在完成后启动它。

官方文件:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy

邢法
2023-03-14

正如人们在评论中建议的那样,我允许Robocopy使用/R:n进行一些尝试,这有助于缓解问题,但仍然不是绝对正确的。一些人建议使用更智能的文件复制任务,但我不知道有什么好的替代方案可以替代Robocopy。

我的命令现在是这样的:

Robocopy E:\Tableau\TableauFileFolder \\shareserver\sharefolder\Tableau\TableauFileFolder TableauFile.twbx /mt /r:5 /w:10 /log+:E:\Tableau\LogFile.log
 类似资料:
  • 我想使用robocopy或xcopy将目录及其内容复制到远程共享。 我已经尝试过了: 不过,这并不复制foo目录。 这将文件和目录从远程路径复制到本地路径: 但反过来也没什么区别: 如您所见,foo目录没有被复制。 那么,如何将本地目录文件复制到远程路径呢? ---编辑--- 使用robocopy foo\\172.16.254.41\c$\temp/copyall/E ---编辑2--- 结果是

  • 我想镜像两个文件夹,但排除某些文件类型(例如js文件)。我可以用 /XF选项来做到这一点。 我遇到的问题是,如果目标文件夹中有一个带有js文件的Foo文件夹,但源文件夹中没有Foo文件夹,那么下面的robocopy命令将删除目标端的Foo文件夹以及其中的js文件。 机器人复制。exe d:\Source d:\Destination/E/PURGE/XF*。js/COPYALL/FFT 我想要的是

  • 前面小节介绍了如何使用 touch 和 mkdir 创建文件和目录,本小节介绍如何删除文件和目录。 1. 删除文件 使用 rm 文件名 命令可以删除文件,以删除普通文件为例: ls -l # 列出当前目录下的所有文件 rm test.c # 使用 rm 命令删除 test.c 文件 ls -l # 再次查看当前目录下的所有文件 执行结果如下图: 可以看到 test.c 文件已经被删除了

  • 我试图使用完整文件路径列表(大多数是唯一的)(例如“C:\Folder1\file\u 1.xls”)复制到完整文件夹路径(例如“C:\DifferentFolder”)。 完整文件路径和完整文件夹路径都因行而异。我已经成功地使用COPY完成了这一点,将所有路径都放在引号中。 继续使用此功能的问题是,我发现,在查看之前和之后的#个文件时,我只有大约95%的成功率。bat文件已完成。我不确定问题是什

  • 我们有一个vbs文件,用于将文件从dropbox文件夹复制到本地文件夹。vbs文件: 当我们通过从桌面(Windows Server 2012 R2)双击手动运行该文件时,该文件运行正常,但当我们尝试将其作为计划任务运行时,该文件什么也不做。 注意:我们认为这个问题可能是在我们从Windows server 2008 R2版升级到2012 R2版时出现的。

  • 我在大学已经学习了4周的JavaScript,两周前在我自己的时间里开始学习Java。事实证明,它很有用,因为我们有一个项目,我们必须制定一个程序(这是我们为项目选择的)。 问题是,虽然我知道Java的大部分基础知识,但我对制作我们想要制作的程序知之甚少,我所有的其他团队成员甚至从未接触过Java,有些人甚至在课堂上与JavaScript作斗争。 对不起,顺便说一句,我只是想让人们了解我的来历。