powershell - 有什么方法可以在指定时间过滤所有文件吗?

标签 powershell filesystems timeofday

我在映射到 X 驱动器的不同文件夹中拥有近 500k 个 CCTV 文件,我需要在特定时间(例如午夜 12 点到凌晨 6 点)删除所有这些文件,但无论日期如何,都保留剩余的文件。我怎样才能做到这一点?我尝试使用 for 文件,但似乎只过滤当天的文件,而且时间也不正确,因为它基本上不会在定义的时间内显示文件。

对于 PowerShell,我得到了这个:

Get-ChildItem -Path c:\your\path\here -Recurse |
  Where-Object -FilterScript { $_.LastWriteTime -ge (Get-Date).AddHours(-2) }

但不确定如何修改它以获取仅包含上午 12 点到上午 6 点文件的列表。

最佳答案

我认为这可能有用。它检查 LastWriteTime.Hour 是否大于 0(上午 12 点)但小于 6(上午 6 点):

Get-ChildItem -Path c:\path -Recurse | 
    Where-Object { $_.LastWriteTime.Hour -gt 0 -and $_.LastWriteTime.Hour -lt 6}

关于powershell - 有什么方法可以在指定时间过滤所有文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59985467/

相关文章:

c# - 如何将 C# 代码转换为 PowerShell 脚本?

php - 如何从 PHP 保证指定的文件是 BSD/Linux 上的设备?

linux - 软件 RAID 有什么特别之处可以带来更好的 IO 性能

java - Java AM/PM 时差

flutter - 在flutter中从24小时格式转换为12小时格式时,添加AM或PM

wpf - Powershell 中的自定义 XAML 命名空间

powershell - 如何通过Power Shell Invoke-RestMethod获取返回值

Azure 函数(PowerShell)

python - 如何循环遍历文件并在 Python 中重命名它们

vb.net - 如何在 VB.net 中比较两次