根据创建日期移动文件/文件夹并保留文件夹结构

时间:2015-06-18 03:01:36

标签: powershell batch-file

Windows 7 Pro环境。

我正在寻找创建批处理或PowerShell脚本来根据创建或上次修改日期移动文件夹。

源文件夹是“D:\ Video”。目的地是“F:\ DVRBackups \”。

要求是维护文件夹结构,并且只移动早于某个创建日期的文件夹,而其他文件夹保持不变。

源文件夹的文件夹结构如下所示:

D:\Video\Cam01\XXXX
D:\Video\Cam02\XXXX
D:\Video\Cam03\XXXX

..等。 (XXX = Cam01 / 02/03文件夹中的数百个文件夹,跨越几个月)

根据我正在使用的计算机DVR盒,相机文件夹的数量会发生变化。有些地方有5个摄像头,有些有35个(即Cam01,Cam02,..,Cam35)。

Cam01 / 02/03文件夹中的文件夹需要移到F:\ DVRBackups,同时保持原始文件夹结构。

D:\Video\Cam01\0318 --> F:\DVRBackups\Video\Cam01\0318
D:\Video\Cam01\0319 --> F:\DVRBackups\Video\Cam01\0319
D:\Video\Cam02\0501 --> F:\DVRBackups\Video\Cam02\0501

...等。

有人可以协助吗?

1 个答案:

答案 0 :(得分:0)

如果只是每个CamXX文件夹中的文件夹,您需要检查上次修改时间并移动它们。您可以在PowerShell中使用以下内容。

$source = "D:\Video\"
$destination = "F:\DVRBackups\"
$date = Get-Date "25/03/2015 12:00"

dir $source | %{ dir $_.FullName | ?{ $_.LastWriteTime -gt $date } | Copy-Item -Destination $destination -Recurse -Force }

如果要先测试要移动的文件夹,请先使用此命令。

dir $destination | %{ dir $_.FullName | ?{ $_.LastWriteTime -gt $date } | select LastWriteTime, FullName }

这将提供将移动所有内容的所有文件夹的列表。