在Batch / Powershell中删除/复制在两个特定时间之间拍摄的所有文件

时间:2014-07-16 14:26:40

标签: windows batch-file powershell

我每天每分钟拍摄约100,000张照片,持续数月。

我希望能够删除在8PM之后和早上6点之前使用批处理或PowerShell脚本拍摄的内容。

这可能吗?

2 个答案:

答案 0 :(得分:0)

我假设您正在寻找文件属性CreationTime。

PS M:\Scripts> (Get-Item .\Clean-UninstallKeysLog.vbs).CreationTime | fl


Date        : 6/24/2014 12:00:00 AM
Day         : 24
DayOfWeek   : Tuesday
DayOfYear   : 175
Hour        : 15
Kind        : Local
Millisecond : 928
Minute      : 18
Month       : 6
Second      : 47
Ticks       : 635392199279286738
TimeOfDay   : 15:18:47.9286738
Year        : 2014
DateTime    : Tuesday, June 24, 2014 3:18:47 PM

使用它可以提取小时属性并编辑预先存在的脚本,查找小时数< 6和> 20.在上面的例子中,我得到15小时

((Get-Item .\Clean-UninstallKeysLog.vbs).CreationTime).Hour
15

答案 1 :(得分:0)

我进入了我的下载文件夹并在PowerShell中执行了此操作:

> $all_files = Get-ChildItem
> $all_files.Count
471

> $some_files = (Get-ChildItem) | Where-Object {$_.CreationTime.TimeOfDay.Hours -gt 18 -and $_.CreationTime.TimeOfDay.Hours -lt 20}
> $some_files.Count
21

您也可以执行此操作以查看CreationTime下的可用属性:

PS D:\Downloads> (gci .\somefile.zip).CreationTime | Get-Member -MemberType Property


TypeName: System.DateTime

Name        MemberType Definition
----        ---------- ----------
Date        Property   datetime Date {get;}
Day         Property   int Day {get;}
DayOfWeek   Property   System.DayOfWeek DayOfWeek {get;}
DayOfYear   Property   int DayOfYear {get;}
Hour        Property   int Hour {get;}
Kind        Property   System.DateTimeKind Kind {get;}
Millisecond Property   int Millisecond {get;}
Minute      Property   int Minute {get;}
Month       Property   int Month {get;}
Second      Property   int Second {get;}
Ticks       Property   long Ticks {get;}
TimeOfDay   Property   timespan TimeOfDay {get;}
Year        Property   int Year {get;}