Powershell 3.0:返回过去24小时内上次写入时间的文件名列表

时间:2015-10-27 15:49:43

标签: powershell

我正在编写一个脚本,以递归方式检查目录中的所有文件夹和文件名,然后将名称和上次写入时间返回给文本文件。我只想要在过去二十四小时内添加的文件和文件夹的名称。

$date = Get-Date

Get-ChildItem 'R:\Destination\Path' -recurse |
Where-Object { $_.LastWriteTime -lt $date -gt $date.AddDays(-1) } |
Select LastWriteTime, Name > 'C:\Destination\Path\LastWriteTime.txt' |
Clear-Host
Invoke-Item 'C:\Destination\Path\LastWriteTime.txt'

调用的.txt文件是空白的,根据我设置的测试条件,不应该是这种情况。我做错了什么?

1 个答案:

答案 0 :(得分:4)

您缺少逻辑。变化:

Where-Object { $_.LastWriteTime -lt $date -gt $date.AddDays(-1) } 

Where-Object { $_.LastWriteTime -lt $date -and $_.LastWriteTime -gt $date.AddDays(-1) } 

更好地使用括号,如果您使用它们,那么语法将不会使用缺少的 AND 进行解析:

Where-Object { ($_.LastWriteTime -lt $date) -and ($_.LastWriteTime -gt $date.AddDays(-1)) }