我正在从源到目标使用Robocopy。
以下将移动所有文件。
Step 1: robocopy c:\Source C:\Destination /MIR
现在,当我一步执行第二个命令时,2019年1月1日之前的任何内容都应该使用 /MIR参数从目标中删除,但是这不会发生(2019年1月之后的文件仍然保留在文件夹中,而不是使用 /MIR命令删除)。我将如何解决这个问题?在20190101之前删除任何内容?
Step 2: robocopy c:\Source C:\Destination /MIR /maxage:19000101 /minage:20190101"
这看起来确实很奇怪,因为人们可能会认为您正在尝试使用MINAGE开关选择2019年1月1日之前的所有内容。然后将其与MIR开关或更具体地说是PURGE开关组合,以删除2019年1月1日之后的额外文件和目录。
这不起作用的原因是/MINAGE
开关仅影响选择要复制的文件,即使/MIR
命令按预期工作。
假设我们有2个文件1比2019年1月1日更早,一个更新。
C:\Source C:\Destination
File-2018.txt
File-2019.txt
当我们运行标准的MIR命令时:
Robocopy.exe C:\Source C:\Destination /MIR
两个文件都按预期进行了复制。
2 files Copied
C:\Source C:\Destination
File-2018.txt File-2018.txt
File-2019.txt File-2019.txt
如果向目标添加额外文件:
C:\Source C:\Destination
File-2018.txt File-2018.txt
File-2019.txt File-2019.txt
File-2020.txt
然后重新运行/MIR
命令:
Robocopy.exe C:\Source C:\Destination /MIR
我们得到,如预期的那样,额外的文件被删除:
2 files Skipped
1 files Extras
C:\Source C:\Destination
File-2018.txt File-2018.txt
File-2019.txt File-2019.txt
在MIR命令中,当我们添加一个MINAGE参数时,我们会认为我们要求2019年1月1日及以后的所有东西都保留,其余的都保留:
Robocopy.exe C:\Source C:\Destination /MIR /MINAGE:20190101
我们得到了意想不到的:
2 files Skipped
C:\Source C:\Destination
File-2018.txt File-2018.txt
File-2019.txt File-2019.txt
为了更好地说明发生了什么,以及为什么“跳过”文件,让我们添加另一个参数,包括Skipped(跳过的):
Robocopy.exe C:\Source C:\Destination /MIR /IS /MINAGE:20190101
我们得到:
1 files Copied
1 files Skipped
C:\Source C:\Destination
File-2018.txt File-2018.txt
File-2019.txt File-2019.txt
这意味着参数只过滤掉了我们想要复制的内容。如果我们重置并清除目录,然后重新运行,我们可以更好地看到发生了什么:
Remove-Item C:\Destination -Force
C:\Source C:\Destination
File-2018.txt
File-2019.txt
Robocopy.exe C:\Source C:\Destination /MIR /MINAGE:20190101
我们得到:
1 files Copied
1 files Skipped
C:\Source C:\Destination
File-2018.txt File-2018.txt
File-2019.txt
它复制了Older文件,而不是Newer文件。这意味着当它遍历源代码中的文件时,它使用/MINAGE
参数来仅确定我需要复制的文件,而不是我需要删除的文件。
这种行为的原因是因为MINAGE和相应的MAXAGE参数适用于具有慢速网络链接的超大目录或较小的目标计算机,我们通常只对复制某些文件集感兴趣(例如,仅复制昨天的新文件),而不必复制所有文件。在这些情况下,通常不执行或不需要镜像,因为文件集通常是“Delta”。
要突出显示copy over remove,请镜像目录,然后向目标添加两个额外文件,一个旧文件,一个新文件:
C:\Source C:\Destination
File-2017.txt
File-2018.txt File-2018.txt
File-2019.txt File-2019.txt
File-2020.txt
然后重新运行Include Skipped IS,这样我们就可以看到复制的内容:
Robocopy.exe C:\Source C:\Destination /MIR /IS /MINAGE:20190101
我们得到了一些令人惊讶的结果:
1 files Copied
1 files Skipped
2 files Extras
C:\Source C:\Destination
File-2018.txt File-2018.txt
File-2019.txt File-2019.txt
这突出显示了/MIR
是用于...良好的...镜像。其他参数只是告诉它要复制什么。
我们从副本中涉及的源文件开始:
C:\Source
File-2018.txt
File-2019.txt
我们通过包含跳过的/IS
和/MINAGE
应用过滤:
C:\Source
File-2018.txt <- 1 files Copied
File-2019.txt <- 1 files Skipped
然后\MIR
Mirror命令执行并删除目标中未包含在源文件中的所有文件:
C:\Destination
File-2017.txt <- 2 files Extra
File-2020.txt
不管额外文件的年代如何
简单的解决方案是一开始就不要复制所有内容。从空目录开始,只复制2019年1月1日之前的文件:
Remove-Item C:\Destination -Force
Robocopy.exe C:\Source C:\Destination /E /MINAGE:20190101
编辑
改进后的方法(而不是先删除整个目录),只需在目标上运行清理脚本,即可首先从目标中删除2019年1月1日之前的项目:
#Cleanup younger files
Get-ChildItem C:\Destination -Recurse | Where { $_.LastWriteTime -gt (Get-Date '2019-01-01')} | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
#Mirror over new files
Robocopy.exe C:\Source C:\Destination /MIR /MINAGE:20190101
Mir 是高性能的数学算法库和机器学习工具包,性能已经达到 Intel MKL 水平,远高于苹果公司的 Accelerate 和 OpenBLAS 等。 Mir 用于科学和机器学习的通用数值库。 其它 Mir 项目 Mir Random - 专业随机数生成器 Mir GLAS - 线性代数库 Mir CPUID - CPU 识别 基于 Mir 的开源项目 D编程语言的计算机视觉库
Mir 是一套提供类似gRPC服务开发体验的快速开发RESTful API后端开发脚手架,适配多种HTTP框架,包括 Gin , Chi , Hertz , Echo , Iris , Fiber, Macaron, Mux, httprouter 。 使用说明 生成样板项目 % go get github.com/alimy/mir/mirc/v3@latest% mirc new -hcr
问题内容: 我使用以下代码从SQL Server表中进行选择: 它运行完美,但是我想防止SQL注入,所以我尝试使用: 当我尝试执行此操作时,SQL Server没有任何结果。 知道为什么吗? 问题答案: “为什么?” 这是因为很少有电影的名称中带有“ @Search”一词-即“ Indiana Jones and the Last @Search”。也许是《星际迷航3:@搜索Spock》。通过将其
Mir是由Canonical公司开发的Linux操作系统下的显示服务器。原本用以取代Ubuntu中的X窗口系统。,但是2017年4月Canonical公司宣布放弃开发Mir专用的显示后端服务,并改开发以Wayland作为显示后端的使用者界面。并于2017年10月,将原先发布的版本1.0 退回到版本 0.28 并大幅度的增加对于 wayland 的支援程度。 系统架构:
Math-o-mir 仅仅 382k,是个强大的公式编辑器。截图还不能显示它的强大。在其官方网站还有个更牛的演示,画电路图,旁边标注满了公式。
问题内容: 我是否可以使用一组参数启动 Java WebStart 应用程序,就像用标记配置了applet一样? 谢谢 问题答案: 是的,您可以看到以下示例: 显示向您传递参数“ -user = bob”和“ -pass = 8jkaiuasu”到应用程序。以标准方式获取参数。