命令中PowerShell中的日期比较

命令中PowerShell中的日期比较,powershell,Powershell,我正在使用get-child项获取文件,我想获取上次修改日期/创建日期与今天日期匹配的文件 PS E:\> Get-Childitem –Path 'E:\utility\sysout' -Include *DBA_M_MNT_BACKUP_system* -File -Recurse -ErrorAction SilentlyContinue 我得到的输出 Directory: E:\utility\sysout Mode LastWriteT

我正在使用get-child项获取文件,我想获取上次修改日期/创建日期与今天日期匹配的文件

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(仅日期)和当前日期 并且仅当日期与当前日期匹配时才给出命令的输出 这是怎么回事? 它可以查看
LastWriteTime
是否大于今天的“开始时间”,以及明天的“开始时间”,其中“开始时间”是
00:00:00

插图 后果
是的,确实有办法。你在找这样的东西吗-

$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
循环,根据您的需求,任何适合您的都可以。

我之所以使用这种方法,是因为我想比较年、月和日期,而不必花费时间$File=Get Childitem–路径“E:\utility\sysout”-Include DBA\u M\n\u BACKUP\u system-File-Recurse-error action SilentlyContinue$timediffyear=(Get date).year-$File.LastWriteTime.year$timediffmonth=(获取日期)。month-$File.LastWriteTime.month写入主机$timediff写入主机$timediffmonth,对于月份的时差,它不显示任何内容。如果LastWriteTime与当前日期匹配,我只想显示文件名,否则错误<代码>(获取日期)。month-($File.LastWriteTime).Month应返回月差。如果没有差异,它将返回
0
。$File=Get Childitem–路径'E:\utility\sysout'-Include DBA\u MNT\u BACKUP\u system-File-Recurse-ErrorAction SilentlyContinue$timediffyear=(Get Date).year-$File.LastWriteTime.year$timediffmonth=(Get Date).month-($File.LastWriteTime).month write host$timediff write host$timediff month output PS E:\>E:\utility\example.ps1 0未显示月差最终得到答案did time diff并选中$File=Get Childitem–路径“E:\utility\sysout”-Include DBA\u M\n tu BACKUP\u system-File-Recurse-ErrorAction SilentlyContinue$timediffyear=(获取日期).year-$File.LastWriteTime.year$timediffmonth=(获取日期)。month-($File.LastWriteTime)。month$timediffday=(获取日期)。day-($File.LastWriteTime)。day写入主机$timediffyear写入主机$timediffmonth写入主机$timediffday
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
$File = Get-Childitem –Path 'E:\utility\sysout' -Include *DBA_M_MNT_BACKUP_system* -File -Recurse -ErrorAction SilentlyContinue
$timediff = (Get-Date) - $File.LastWriteTime