Как бы я использовал powershell для подсчета количества файлов и количества папок в папке, эмулируя Windows-свойства этой папки?
(get-childitem -recurse).count
возвращает общее количество объектов (сумма количества папок и файлов) и
(gci -rec | where { $_.PSIsContainer }).count
возвращает количество папок. Но есть ли способ подсчитать как папки, так и файлы в одной команде, не пересекая файловую систему дважды? Я предполагаю, что можно написать процедурный код PowerShell с именованными переменными и циклами, но это не похоже на обычный способ его использования.
А по смежной теме http://technet.microsoft.com/en-us/library/ee692796.aspx описывает два способа получения списка имен файлов:
Get-ChildItem C:\Scripts | Select-Object Name
а также
Get-ChildItem C:\Scripts -name
Автор утверждает, что они эквивалентны, но с -recurse первая возвращает только имена файлов, а вторая возвращает полный путь. Есть ли способ заставить Select-Object возвращать полный путь, чтобы эти две команды генерировали одинаковый вывод? (Случайный удар в Select-Object Path
дал пустые строки, а не пути.)
gci -rec -name
gci -rec | Select-Object xxx?