如何修改PowerShell文件搜索脚本,在CSV报告中添加扩展名与修改日期列?
修改PowerShell脚本添加文件扩展名和最后修改日期列
当然可以,以下是修改后的脚本,新增了文件扩展名(不含前缀点)和最后修改日期两列:
Get-ChildItem -Path "C:\Users\someuser" -Include *.db,*.bak,*.mdf,*.ldf,*.zip,*.rar,*.7z -Recurse | Where-Object {$_.Length -gt 104857600} | Select-Object FullName, @{Name="SizeInMB"; Expression={ [math]::Round($_.Length / 1MB, 2) }}, @{Name="FileExtension"; Expression={ $_.Extension.TrimStart('.') }}, @{Name="LastModifiedDate"; Expression={ $_.LastWriteTime }} | Export-Csv -NoTypeInformation -Path "C:\temp\Report_Temp.csv" # 移除CSV中的引号(原脚本需求) Get-Content "C:\temp\Report_Temp.csv" | ForEach-Object { $_ -replace '"', '' } | Set-Content "C:\temp\Report.csv" # 删除临时文件 Remove-Item "C:\temp\Report_Temp.csv"
关键修改说明:
- 新增
FileExtension列:通过$_.Extension.TrimStart('.')提取文件扩展名并去除开头的点(例如将.bak转为bak) - 新增
LastModifiedDate列:直接调用文件对象的LastWriteTime属性获取最后修改日期 - 修正了原脚本的引号替换逻辑:由于
Export-Csv不会将输出传递到后续管道,因此先导出到临时文件,处理引号后写入最终文件,最后清理临时文件
内容的提问来源于stack exchange,提问作者denprash
相关产品推荐
相关产品推荐

