将文件从一个目录复制到另一个目录

时间:2013-12-31 18:34:26

标签: powershell

我需要根据文件的年龄将文件从一个目录复制到另一个位置。我还需要保留目录结构。

此代码只能复制符合条件的文件,但不保留目录结构:

$ListDate = Get-Date "12/6/2013 11:08 AM"
$ActiveDate = $ListDate.AddYears(-7)
Get-ChildItem -path "T:\ProductionServices" -recurse | where-object {$_.lastwritetime -le $ActiveDate -and -not $_.psiscontainer} | Copy-item -destination "T:\TECH\CopyOfDeleteFile"

我已经在这方面苦苦挣扎了一个多星期,我已经尝试了我在这里和互联网上看到的所有建议。我只需要一点点推动就能弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:2)

这是robocopy比PowerShell更好的情况之一(或者使用带有 PowerShell的robocopy )。虽然使用robocopy,但你无法得到解决方案(我认为)

robocopy t:\Productionservices t:\tech\copyofdeletefile /E /MINAGE:20061206

或者,如果您想将它与PowerShell一起使用来进行日期数学运算:

$ListDate = Get-Date "12/6/2013 11:08 AM";
$ActiveDate = get-date $($ListDate.AddYears(-7)) -f "yyyyMMdd";
robocopy t:\Productionservices t:\tech\copyofdeletefile /E /MINAGE:$ActiveDate;

您也可以使用/COPY:DAT /DCOPY:T切换到preserve all attributes & timestamps