我正在使用get子项来获取文件,我想获取上次修改日期/创建日期与今天日期匹配的文件
PS E:\> Get-Childitem –Path 'E:\utility\sysout' -Include *DBA_M_MNT_BACKUP_system* -File -Recurse -ErrorAction SilentlyContinue输出iam正在获取
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我想看看上次写入时间,我想要日期与当前日期匹配,如get-date.day get-date.month get-date.year,我需要单独拾取,是否有方法可以直接将上次写入时间(仅日期)与当前日期进行比较,并仅当日期与当前日期匹配时才给出命令输出
发布于 2018-02-16 16:04:34
是的,确实有一种方法。你在找这样的东西吗-
$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循环,根据你的需求,任何适合你的循环。
发布于 2018-02-16 16:03:48
代码
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:00https://stackoverflow.com/questions/48822345
复制相似问题