我整理了一个Powershell脚本,该脚本将返回给定目录中所有文件的信息:
Folder Name
File Name
Last Write Time
File Size (MB)
我只是遗漏了最后一条信息而且我花了最后5个小时试图包含每个文件中包含的行数而没有任何成功。如果我能得到一些帮助,我将非常感激,谢谢。这是我到目前为止的代码:
Clear-Host
$UpstreamFile = 'C:\MyFolder'
$OutputFile = 'C:\FileInformation.csv'
Get-Childitem $UpstreamFile -rec | Where {!$_.PSIsContainer} |
Select-Object @{Name="FolderLocation"; Expression={$UpstreamFile}}, @{Name="FileName"; Expression={$_.Name.ToUpper()}},
@{Name="LastWriteTime"; Expression={$_.LastWriteTime.ToString("dd/MM/yyyy HH:mm")}}, @{Name="FileSizeMB";Expression={$_.Length / 1Mb}} | Export-csv -notypeinformation -delimiter '|' -path $OutputFile
答案 0 :(得分:0)
对于基于文本的文件,您可以将Get-Content的结果传递给Measure-Object,然后选择Select-Object。我不完全确定二进制文件的结果。
Get-Content <filename> | Measure-Object | Select-Object -ExpandProperty Count
这可以包含在您现有的脚本中,方法是在管道之前添加另一个条目到Export-CSV。
Select-Object @{Name="FolderLocation"; Expression={$UpstreamFile}},
@{Name="FileName"; Expression={$_.Name.ToUpper()}},
@{Name="LastWriteTime"; Expression={$_.LastWriteTime.ToString("dd/MM/yyyy HH:mm")}},
@{Name="FileSizeMB";Expression={$_.Length / 1Mb}},
@{Name="Rows"; Expression={ (Get-Content $_ | Measure-Object | Select Count) }} | Export-csv -notypeinformation -delimiter '|' -path $OutputFile