具有完整路径的文件名和文件中的行数

时间:2019-01-28 20:28:24

标签: powershell

我可以获取文件名,文件中的行数和文件大小,但是无法获取文件的完整路径。

$measure = Get-Content C:\Users\Documents\Daily_files_YYYY-MM-DD.txt | Measure-Object 
$lines = $measure.Count
echo "line count is: ${lines}"


Get-ChildItem C:\Users\Documents\ -Recurse| 
    ? {! $_.PSIsContainer} |
    Select-Object  Name, @{Name='Size'; Expression={([string]([int]($_.Length / 1KB))) + " KB"}}

如何获得以下格式?

文件名:Daily_files_2019-01-10.txt
路径:C:\ Users \ Documents \
行数是:27723
档案大小:23 KB或MB或GB

1 个答案:

答案 0 :(得分:0)

使用Get-Content并展开ReadCount属性以获取行数。文件目录的完整路径存储在其DirectoryPath属性中。

Get-ChildItem 'C:\Users\Documents' -Recurse |
    Where-Object {-not $_.PSIsContainer} |
    Select-Object @{n='File Name';e={$_.Name}}, @{n='Path';e={$_.DirectoryPath}},
        @{Get-Content $_.FullName | Select-Object -Expand ReadCount -Last 1}},
        @{n='File Size';e={$_.Length}}

我不建议使用文件大小进行计算或将其转换为字符串,除非该值仅用于(人类可读的)输出。

请注意,PowerShell v3为-Directory引入了一个新参数Get-ChildItem,因此,在使用最新版本的版本时,您不需要执行额外的Where-Object流水线步骤。