搜索日期X之后创建的文件夹并复制它们



我需要浏览一个大文件夹(我们称之为D:Files),其中包含大约50,000个文件夹和大约100万个文件,并复制2012年8月31日之后创建(未修改)的所有文件夹,包括其子文件夹中的所有内容(包括第二/第三/第四级深子文件夹等)和这些文件夹中的文件(也包括子文件夹中的文件,无论何时更改),无论何时创建,都要为他们。只要它们在8月之后创建的"更高"文件夹中,到另一个驱动器(称为E:Space) -仍然保持原始文件夹结构,因此之前在D:FilesFolder1Subfolder3hello.txt中的文件应该在E:SpaceFolder1Subfolder3hello.txt

背景是,一些文件夹是在8月之后在结构中创建的,但其中的文件确实有一个较旧的修改日期,我需要在搜索过程中包括所有在2012年8月31日之后添加到D: files的内容,所以我无法确定哪些文件是最近添加的,哪些文件是在8月之前已经在那里了,我需要搜索文件夹创建日期。

因此,如果文件夹D:FilesFolder1是在9月份创建的,那么其中的文件和文件夹-无论是1级,2级,3级,4级等等,无论何时更改/修改,都应该用powershell移动到E:Space。

在过去的两天里,我一直在努力打通电话,但到目前为止都失败得很惨。

我知道这对于Powershell来说可能不容易,因为它需要几个步骤,但是任何帮助都会非常感激。

试试这样:

$srcRoot = "D:Files"
$dstRoot = "D:Space"
$ct = Get-Date "2012-09-01"
Get-ChildItem -Recurse $srcRoot | ? {
  $_.PSIsContainer -and $_.CreationTime -ge $ct
} | sort FullName | % {
  $name = $_.FullName
  if ($top -eq $null) {
    $top = $name
  } elseif ( $name.substring(0, [math]::Min($top.Length, $name.Length)) -ne $top ) {
    $top = $name
    $dst = $_ -replace [regex]::Escape($srcRoot), $dstRoot
    Copy-Item $name $dst -Recurse -Force
  }
}

你应该考虑使用robocopy。执行解决任务

如果您正在寻找ps解决方案,请查看scriptinggames 2013 Event 1提交

相关内容

  • 没有找到相关文章

最新更新