【发布时间】:2019-09-15 06:52:09
【问题描述】:
我们正处于文件时间紧缩状态。我们需要从一堆目录中提取 2019 年 4 月 9 日的一堆文件。每个目录都有约 1000 个文件。我们希望将所有这些文件从 2019 年 4 月 9 日复制到它们各自的文件夹结构中,但只复制那些文件。
我们使用 xcopy 来复制文件夹结构,并且一直在手动复制我们需要的文件。但是,有 1000 个文件夹,每个文件夹都有大约 1000 个文件,所以它是一个很大的障碍。尝试将我们的论点传递给 copy-item,但这并没有给我带来太多的运气。
我假设即使我的代码乱码,也有一些简单的参数或我忽略的东西。我们一直在努力工作,我浏览了许多主题,并正在向社区寻求帮助。我可能在来这里的路上通过了我的确切问题。
为了记录,我不编写代码并且不经常使用 PowerShell。
#Gets all files that were last modified on 4/9/2019
(Get-ChildItem -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date -month 4 -day 9 -Format d) -and $_.LastWriteTime -lt (Get-Date -month 4 -day 10 -Format d)}) |
#Copies the files from source to destination
Copy-Item "C:\abc\" "D:\abc\"
}
【问题讨论】:
-
您可能想要使用的第一件事是
-WhatIf开启Copy-Item。这将告诉您如果完成会发生什么。 -
robocopy 具有用于文件复制/移动操作的旧/新选项。当您有多个文件时,powershell 不是正确的工具 - robocopy 是。
-
Lee_Dailey 是正确的。在各种情况下,Robocopy 等较旧的实用程序做得更好,并且更易于用于此类任务。
-
有没有办法让特定的一天脱离 robocopy?尝试使用它和 xcopy 但总是抓取比预期更多的文件或根本没有文件。我试过 maxage、minage、xo 和 xn 都没有成功。任何 robocopy 提示?
标签: powershell robocopy xcopy