首页 文章

命令中PowerShell中的日期比较

提问于
浏览
0

我正在使用获取子项获取文件,我想获取最后修改日期/创建日期与今天日期匹配的文件

PS E:\> Get-Childitem –Path 'E:\utility\sysout' -Include *DBA_M_MNT_BACKUP_system* -File -Recurse -ErrorAction SilentlyContinue

输出我得到

Directory: E:\utility\sysout


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         2/16/2018   2:00 AM       4709 TEDM_DBA_M_MNT_BACKUP_System_Databases_021620180200AM.txt

我想看看lastwritetime我希望日期与当前日期相匹配,如 get-date.day get-date.month get-date.year 我需要单独选择是否可以直接比较lastwritetime(仅限日期)与当前日期并仅在日期与当前日期匹配时输出命令

2 回答

  • 0

    是的确有一种方法 . 你在寻找这样的东西 -

    $File = Get-Childitem –Path 'E:\utility\sysout' -Include *DBA_M_MNT_BACKUP_system* -File -Recurse -ErrorAction SilentlyContinue
    $timediff = (Get-Date) - $File.LastWriteTime
    

    您可以使用 $timediff.Days$timediff.Hours 等访问时差 . 当您只获得一个文件作为输出时,上述方法有效 . 但是如果你在 $File 中获得多个文件,那么你会想要像 $File[0].LastWriteTime$File[1].LastWriteTime$File[2].LastWriteTime 等那样使用它 . 或者你可以根据你的要求使用 Foreach 循环,任何适合你的循环 .

  • 1

    代码

    Get-ChildItem -Path C:\temp |
        Where-Object {
            $_.LastWriteTime -ge ((Get-Date).Date) -and
            $_.LastWriteTime -lt ((Get-Date).Date).AddDays(+1)
        }
    

    这是如何工作的?

    好吧,如果 LastWriteTime 今天大于"start of",明天"start of","start of"是 00:00:00 的时间

    插图

    Write-Host (Get-Date)
    Write-Host (Get-Date).Date
    Write-Host ((Get-Date).Date).AddDays(+1)
    

    结果

    16/02/2018 08:03:08
    16/02/2018 00:00:00
    17/02/2018 00:00:00
    

相关问题