我在powershell中写了一个脚本,该脚本将从过去七年开始将目录中的所有文件拉动(这是我第一次使用PowerShell)。
我试图将我的结果从下面的脚本导出到TXT或CSV文档中。
get-childitem -Path P: -recurse | where-object {$_.LastWriteTime -lt (getdate).Addyears(-7)}
我应该在此脚本的末尾添加什么以将此数据写入文件?
首先,您的脚本是在过去7年中找到7岁以上的文件。您需要将-lt
更改为-gt
。
get-childitem -Path P: -recurse| where-object {$_.LastWriteTime -gt (get-date).Addyears(-7)}
当您编写脚本时,它找到了文件最后写给文件的日期/时间,例如3/24/2015 2:45 pm。然后,它检查是否少于现在减去7年(在撰写本文时为12/5/2010 3:22 pm)。仅仅看几年,我们就可以看到2015年不少于2010年,因此将排除该文件。
您可以使用Out-File
或(我的喜好)Set-Content
cmdlet输出文本文件。
get-childitem -Path P: -recurse| where-object {$_.LastWriteTime -gt (get-date).Addyears(-7)} | Set-Content C:PathToFile.txt
另外,如果您也要捕获数据,或者在屏幕上显示,则可以使用Tee-Object
CMDLET。
get-childitem -Path P: -recurse| where-object {$_.LastWriteTime -gt (get-date).Addyears(-7)} | Tee-Object -FilePath C:PathToFile.txt
如果您想要一个CSV文件,则使用Export-Csv
CMDLET。使用此CMDLET时,使用-NoTypeInformation
参数(在我的示例中缩短为-NoType
)是非常常见的,以避免获得指定输出的对象类型的第一行。
get-childitem -Path P: -recurse| where-object {$_.LastWriteTime -gt (get-date).Addyears(-7)} | Export-Csv C:PathToFile.csv -NoType
get -childitem -path p: - recurse |where-objject {$_。TASTWRITETIME-LT((get-date).adddyears(-7))} |导出csv c: temp test.csv