我需要生成过去七天内已更改的文件列表。据我所知,这是一种方法:
Get-ChildItem | Where{$_.LastWriteTime -gt (Get-Date).AddDays(-7)}
我想"赶上"只有文件所在的基本目录。例如,如果文件位于路径" c:\ dir1 \ dir2 \ dir3"中,我只想捕获" dir1&# 34;目录(我不需要根路径)。据我所知,这是一种方法:
([System.Uri]"c:\dir1\dir2\dir3").segments[2]
问题在于我不了解如何结合以前的流程。如何生成相关目录的列表(如第2项中所述),该列表基于项目编号中描述的过程结果。 1。
我猜你不会感到惊讶,即使我们想要达到我想做的事情(如第3项所述),我们也会得到很多重复的结果。
即使我试图只实现第5项中描述的内容。 1,并尝试删除重复项,它没有按预期工作。
我使用了以下命令(请注意Get-Unique
cmdlet):
Get-ChildItem | Where{$_.LastWriteTime -gt (Get-Date).AddDays(-7)} |
select directory | Get-Unique | Out-GridView
我做错了什么?
答案 0 :(得分:0)
对于3),在管道中使用ForEach-Object
来处理每个元素(由$_
表示):
Get-ChildItem | Where{$_.LastWriteTime -gt (Get-Date).AddDays(-7)} | ForEach-Object { ([System.Uri]$_.FullName).segments[2] } | Get-Unique | Out-Gridview