将PowerShell的结果导出到CSV文档不起作用



我在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

最新更新