Имя файла с полным путем и количеством строк в файле - PullRequest
0 голосов
/ 28 января 2019

Я могу получить имя файла, количество строк в файле и размер файла, но не могу получить полный путь к файлу.

$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 КБ или МБ или ГБ

1 Ответ

0 голосов
/ 28 января 2019

Используйте 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 при использовании достаточно свежей версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...