Windows PowerShell获取指定日期范围文件异常:返回全部文件
解决PowerShell筛选指定日期范围文件的问题
嘿,我一眼就瞅出你命令里的问题啦——你在Where-Object的条件里用了-or,这直接导致所有文件都能匹配上!你琢磨下:任何文件的LastWriteTime要么早于$end,要么晚于$start,这俩条件总有一个成立,自然会返回全部文件。
要筛选介于$start和$end之间的文件,得把逻辑运算符改成-and,这样只有同时满足“晚于起始时间”和“早于结束时间”的文件才会被选中。
修正后的命令如下:
[datetime]$start = '2018-04-01 00:00:00' [datetime]$end = '2018-05-01 00:00:00' Get-ChildItem "C:\Users\PC- 1\Downloads" | Where-Object { $_.LastWriteTime -gt $start -and $_.LastWriteTime -lt $end }
另外给你个小技巧:如果只需要筛选文件(排除文件夹),可以给Get-ChildItem加上-File参数,这样能减少后续过滤的工作量:
Get-ChildItem "C:\Users\PC- 1\Downloads" -File | Where-Object { $_.LastWriteTime -gt $start -and $_.LastWriteTime -lt $end }
内容的提问来源于stack exchange,提问作者Mohammad Yusuf
相关产品推荐
相关产品推荐

