PowerShell以相同的时间帧创建时间

时间:2016-11-24 21:05:01

标签: date powershell move creation

我正在尝试创建脚本,该脚本将根据文件创建日期和时间段(5分钟增量)移动不同文件夹中的文件。这是一个关于我想要实现的例子:

forlder中的文件来源:

File1 - 创建日期&时间:2016-11-23 8:00 AM File2 - 创建日期和时间:2016-11-23 8:01 AM File3 - 创建日期和时间:2016-11-23 8:02 AM File4 - 创建日期和时间:2016-11-23 8:10 AM File5 - 创建日期和时间:2016-11-23 8:11 AM File6 - 创建日期和时间:2016-11-23 8:12 AM

脚本将移动文件夹1上的文件1,2,3和fodler2上的文件4,5,6,因为文件4,5,6具有创建日期增量>比file1,2,3

5分钟

我开始使用Get-ChildItem但是对于如何编写5分钟增量概念的脚本存在问题。

感谢任何帮助,因为这是我在PowerShell中的第一天脚本

2 个答案:

答案 0 :(得分:0)

试试这个:

$path = your-path
$searchDate = Get-Date -Date "2016-11-23 08:00:00"

for($i=1; $i -le 10; $i++)
{
    Get-ChildItem -Path $path -recurse -include "$Include" |
        where {$_.CreationTime -ge $searchDate.AddMinutes(($i-1)*5) -and 
               $_.CreationTime -lt $searchDate.AddMinutes($i*5)
        }
}

答案 1 :(得分:0)

如果您希望在5分钟创建时间范围内移动目录中的文件

$direresult="c:\temp9\"

#list file with creation of property rang
$listfile=gci "c:\temp" -recurse -file | sort creationtime | select  Name, fullname, creationtime, @{N="Rang";E={0}}

#load in value rang next if condition is respected
$cpt=1

for ($i = 0; $i -lt $listfile.Count; $i++)
{ 
    if ($i -lt ($listfile.Count-1))
    {
        if ($listfile[$i+1].creationtime -gt $listfile[$i].creationtime.AddMinutes(5)) {$cpt++}
        $($listfile[$i+1]).Rang=$cpt
    }
}

#move files by group
$rangfile=0
$listfile | group  Rang | %{$rangfile++; New-Item -ItemType Directory "$direresult\folder$rangfile" -Force; $_.group | %{move-item $_.fullname "$direresult\folder$rangfile" -Force   }       }