Пожалуйста, обратите внимание на следующее дерево каталогов:Создание пользовательских dirlisting в PS2
root
dir1
dir11
x.L01 12kb
x.L02 10kb
dir12
dir122
a.jpg 5kb
b.xls 3kb
c.bmp 3kb
dir2
a.L01 100kb
a.L02 200kb
a.L03 50kb
dir3
dir31
dir4
Есть 3 случая:
- а (суб) реж пусто;
root/dir3/dir31
иroot/dir4
- a (sub) dir содержит (только)
L0x
файлы, в которыхx
- это номер;root/dir1/dir11
иroot/dir2
- а (суб) реж есть файлы, но не из
L0x
-kind
Нужный выход пользовательского списка каталогов с 3-мя столбцами:
- Filepath
- FileSize
- lefcount (см. Ниже)
Логика заключается в следующем:
- если (суб) реж пуст, не перечисляют реж
- если (суб) реж содержит (только)
L0x
файлы, только список первый (root/dir1/dir11/x.L01
) но подсчитать количество и общий размер файла всехL01
s - если (суб) реж есть и другие файлы, перечислите реж, но подсчитать количество и общий размер файла всех файлов
Так пример вывод будет:
path size count
----------------------------------------
root/dir1/dir11/x.L01 22kb 2
root/dir1/dir12/dir122 11kb 3
root/dir2/a.L01 350kb 3
Я только начинаю PowerShell, и придумал следующее, что не много, но (а) я иду в правильном направлении? и (б) как исходить отсюда?
Get-ChildItem "C:\root" -Recurse |
Foreach-Object {
If ($_.PSIsContainer) {
Get-ChildItem $_.fullname |
Foreach-Object {
Write-Host $_.fullname
}
}
}
Любая помощь была бы принята с благодарностью!
Что делать, если реж имеет как 'L0x' и другие файлы? –
Делают ли файлы 'L0x' пройденными 9? '.L11' – Matt
@ MathiasR.Jessen Я бы сказал, что это покрыто логическим условием 3, поскольку 2 использует слово _only_ – Matt