#list #powershell #file #count
#Список #powershell #файл #количество
Вопрос:
Я хотел бы создать таблицу, содержащую количество файлов во всех вложенных папках с именем «andre tegninger». Я нашел здесь следующий код, который я изменил для фильтрации по интересующей меня подпапке.
dir -filter "*Andre tegninger*" -recurse | ?{ $_.PSIsContainer } | %{ Write-Host $_.FullName (dir $_.FullName | Measure-Object).Count }
Это работает нормально, но есть ли способ получить имя папки и количество файлов в двух отдельных столбцах?
Спасибо!
Комментарии:
1. вы можете выбрать столбцы
Ответ №1:
Вы можете использовать Select-Object
для получения в отдельных полях ожидаемых свойств :
dir -filter "*Andre tegninger*" -recurse | ?{ $_.PSIsContainer } | Select-Object -Property FullName, {(dir $_.FullName | Measure-Object).Count}
Поскольку -Property ожидает свойство (очевидно) Вы должны использовать {}
around (dir $_.FullName | Measure-Object).Count
, чтобы сообщить powershell, что это вычисляемое выражение.
В качестве выходных данных вы получаете :
FullName (dir $_.FullName | Measure-Object).Count
-------- --------------------------------------
Your list of folders...
Вы можете пометить имена полей, чтобы присвоить им несколько причудливых имен, таких как :
dir -filter "*Andre tegninger*" -recurse | ?{ $_.PSIsContainer } | Select-Object -Property @{label="Path";expression={$_.FullName}}, @{label="Numer of files";expression={(dir $_.FullName | Measure-Object).Count}}
И вы получаете в качестве вывода :
Path Numer of files
---- --------------