标签: robocopy

Robocopy背后的算法是什么?

我很想知道是什么让Robocopy(强大的文件复制)变得如此快速和强大.任何机构都知道什么是用于Robocopy的API/Algo?有人研究过Robocopy吗?

我问,因为我必须编写一个方法(在.NET/C#中),它将快速复制目录/文件而没有错误...数据量可以达到15Gb,我不能简单地调用Robocopy出于各种原因.

谢谢!

.net file-io .net-4.0 robocopy

5
推荐指数
1
解决办法
2293
查看次数

Robocopy移动文件早于

这是我的脚本移动文件超过一定天数 -

mkdir F:\TempRemoval
robocopy "F:\Example" "F:\TempRemoval" /move /e /minage:1
del "F:\TempRemoval\*.*" /f /s /q
rmdir F:\TempRemoval /s /q
exit
Run Code Online (Sandbox Code Playgroud)

我唯一的问题是我需要的某些文件被添加到这个3-4岁的文件夹中.我知道一个可行的解决方案,但我不知道如何编码.

我希望robocopy只搜索日期到第一级文件夹,即

c:\folders\delete
Run Code Online (Sandbox Code Playgroud)

我希望它只搜索"文件夹"中列出的文件和文件夹的日期 - 并根据该结果移动整个文件夹和子文件夹/文件.

反正有没有这样做?

robocopy

5
推荐指数
1
解决办法
8万
查看次数

如何防止Robocopy处理一个空的顶级目录?

有没有办法利用Robocopy,如果它是针对一个空的顶级目录调用它不会复制它?

我正在使用Robocopy来识别然后在脚本中压缩的文件和目录 - 使用标准Windows归档功能无法压缩空目录.

我知道/ s开关可以防止复制空子目录.

batch-file robocopy

5
推荐指数
1
解决办法
1万
查看次数

为什么?ROBOCOPY:访问目标目录时出现错误 32 (0x00000020)。该进程无法访问该文件,因为该文件正在被另一个进程使用

在此先感谢您的帮助。

我用来ROBOCOPY将一些文件从一个驱动器复制到同一台计算机上的另一个驱动器。每隔一段时间,我就会收到一个错误。它没有按应有的方式重试 999 次,而是重试一次并失败。我有几个问题:

  1. 为什么这个错误首先会发生?

  2. 为什么没有ROBOCOPY按照定义重试 999 次?

命令如下:

mkdir C:\Users\tempuser\AppData\Local\temp\test1
robocopy /R:999 /W:5 /NP /E /XO /NFL /NDL E:\test1 C:\Users\tempuser\AppData\Local\temp\test1 test* 
Run Code Online (Sandbox Code Playgroud)
-------------------------------------------------- ----------------------------
   ROBOCOPY :: 适用于 Windows 的强大文件复制                              
-------------------------------------------------- ----------------------------

  开始时间 : 2013 年 3 月 25 日星期一 4:20:51 AM
   来源:E:\test1
     目标:C:\Users\tempuser\AppData\Local\temp\test1

    文件:测试*

  选项:/NDL /NFL /S /E /DCOPY:DA /COPY:DAT /NP /XO /R:999 /W:5

-------------------------------------------------- ----------------------------

2013/03/25 04:20:51 错误 32 (0x00000020) 访问目标目录 C:\Users\tempuser\AppData\Local\temp\test1
该进程无法访问该文件,因为该文件正在被另一个进程使用。

等待 5 秒...重试...

-------------------------------------------------- ----------------------------

               已跳过的复制总数 不匹配 失败 附加内容
    目录:1 0 0 …

robocopy

5
推荐指数
1
解决办法
2万
查看次数

如何将带空格的参数作为数组传递给Powershell中的RoboCopy?

我正在开发一个脚本,需要根据用户输入动态传递RoboCopy开关,因此使用array似乎是最好的选择.但是我在使用时看到以下问题我指定/XF了具有空格和值的参数.

这按预期工作:

RoboCopy C:\Dir1 C:\Dir2 /NP /NFL /NS /NDL /NJH /NJS /XF *.config
Run Code Online (Sandbox Code Playgroud)

这按预期工作:

$Switches = @("/NP", "/NFL", "/NS", "/NDL", "/NJH", "/NJS", "/E")

RoboCopy C:\Dir1 C:\Dir2 $Switches
Run Code Online (Sandbox Code Playgroud)

抛出ERROR : Invalid Parameter #10 : "/XF *.config":

$Switches = @("/NP", "/NFL", "/NS", "/NDL", "/NJH", "/NJS", "/E", "/XF *.config")

RoboCopy C:\Dir1 C:\Dir2 $Switches
Run Code Online (Sandbox Code Playgroud)

我尝试了一些事情,比如使用/XF参数引用但没有成功.任何提示/帮助表示赞赏.

powershell robocopy

5
推荐指数
1
解决办法
4191
查看次数

当path\filename超过260个字符时,在PowerShell中获取/设置文件属性

我正在寻找一种在PowerShell中获取和设置文件属性(隐藏和只读)的方法,用于组合路径和文件名超过260个字符的文件.我知道.NET类不支持更长的文件路径; 我已经尝试过了.Attrib也不起作用.我收到错误"参数格式不正确 - ".同样,Dir也不起作用.

我正在使用Robocopy来获取文件名.Robocopy对长路径没有任何问题.但是,我不能使用Robocopy获取/设置属性,因为我只使用Robocopy的/ L列表模式.

任何人都有PowerShell的变通方法?

更新:

subst不支持超长路径.它似乎确实适用于部分路径.

mklink 需要本地卷.

net use不支持超长路径.它似乎确实适用于部分路径.

New-PSDrive 不支持超长路径,甚至不支持部分路径.

.net powershell robocopy

5
推荐指数
1
解决办法
639
查看次数

Robocopy无效参数#3

这是我的批量内容

Robocopy.exe D:\IDRIVE\New backups\Program\full\1  D:\IDRIVE\New backups\Program\full\2

pause
Run Code Online (Sandbox Code Playgroud)

但在cmd它正在显示

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows   
-------------------------------------------------------------------------------

  Started : Mon Apr 21 15:24:47 2014

   Source - D:\IDRIVE\New\
     Dest - D:\IDRIVE\New backups\Program\full\backups\Program\full\2\

    Files :
  Options : /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

ERROR : Invalid Parameter #3 : "D:\IDRIVE\New"

       Simple Usage :: ROBOCOPY source destination /MIR

             source :: Source Directory (drive:\path or \\server\share\path).
        destination :: Destination Dir  (drive:\path or \\server\share\path).
               /MIR :: Mirror a complete directory tree.

    For more usage information run ROBOCOPY …
Run Code Online (Sandbox Code Playgroud)

cmd batch-file robocopy batch-processing

5
推荐指数
1
解决办法
2万
查看次数

robocopy将选项视为文件

当我使用robocopy复制文件并使用选项/IS进行覆盖(如果目标位置已经存在)。如日志所示,它将选项视为另一个文件:ERROR : Invalid Parameter #4 : "C:/Program Files/Git/IS"

任何人都知道在覆盖目标文件时如何在Windows中复制文件。

$ robocopy "Z:\ubuntushare" "C:\Natlink\Natlink\MacroSystem" "_git.py" /IS

   ROBOCOPY     ::     Robust File Copy for Windows

  Started : Sat Sep 17 18:00:05 2016

   Source - Z:\ubuntushare\
     Dest - C:\Natlink\Natlink\MacroSystem\

    Files : _git.py

  Options : /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

ERROR : Invalid Parameter #4 : "C:/Program Files/Git/IS"

       Simple Usage :: ROBOCOPY source destination /MIR

             source :: Source Directory (drive:\path or \\server\share\path).
        destination :: Destination Dir  (drive:\path or \\server\share\path).
               /MIR :: Mirror a …
Run Code Online (Sandbox Code Playgroud)

windows shell batch-file robocopy git-bash

5
推荐指数
2
解决办法
515
查看次数

msbuild失败,成功的robocopy退出代码

即使复制文件成功,我的msbuild脚本也会失败。如果robocopy命令exitcode <8,则表示文件已复制。那么,如果退出代码<8,我该如何对msbuild脚本IgnoreExitCode说呢?我将IgnoreExitCode设置为true,但是如果它是真正的错误怎么办?

<Exec Command="robocopy  $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)" IgnoreExitCode="true" />
Run Code Online (Sandbox Code Playgroud)

msbuild robocopy

5
推荐指数
2
解决办法
1865
查看次数

执行后无限循环中的批处理文件闪烁命令提示符

背景

我想使用ROBOCOPY来备份文件夹.为了解这一点,我创建了一个测试源文件夹,其中包含其他子文件夹和虚拟文件.

F:\RoboCopy\RoboCopy_Files
Run Code Online (Sandbox Code Playgroud)

我能够从命令行和PowerShell(使用Windows 10)ROBOCOPY源文件夹.

ROBOCOPY "RoboCopy_Files" "RoboCopy_Files_Testing" /MIR
Run Code Online (Sandbox Code Playgroud)

它完全符合我的要求.
现在我将命令放入批处理文件中Robocopy.cmd.

问题症状

但是,当我将相同的命令放入Robocopy.cmd文件时,在根F:\ RoboCopy文件夹中运行它,我只得到闪烁的cmd窗口,我的命令在越来越多的行上重复.

如何将命令放入CMD文件(例如Robocopy.cmd)以供以后使用/共享/计划?如何在不运行命令的情况下防止命令提示符在无限循环中闪烁?

注意:我觉得这更像是学习如何将cmd脚本放入文件,而不是如何使用ROBOCOPY.

windows cmd batch-file robocopy

5
推荐指数
1
解决办法
696
查看次数