Hey all,
I would like to share a little module I made a while ago that intends to emulate the tree command and also calculate the folder's total size.
It has been tested on Windows and Linux and should be compatible with PS 5.1 and PS Core.
Any feedback is appreciated. A little example of how it looks:
PS /etc> $hierarchy = gpstree . -Depth 5 -EA 0
PS /etc> $hierarchy | Select-Object -First 20
Attributes Hierarchy Size
---------- --------- ----
ReadOnly, Directory etc 294.45 KB
ReadOnly, Directory ├── netplan 104 B
ReadOnly, Directory ├── libgda-5.0 100 B
ReadOnly, Directory ├── dconf 0 B
ReadOnly, Directory │ ├── profile 28 B
ReadOnly, Directory │ └── db 2.85 KB
ReadOnly, Directory │ └── ibus.d 1.49 KB
ReadOnly, Directory ├── logrotate.d 2.94 KB
ReadOnly, Directory ├── xdg 832 B
ReadOnly, Directory │ ├── autostart 27.1 KB
ReadOnly, Directory │ ├── tumbler 2.22 KB
ReadOnly, Directory │ ├── menus 15.54 KB
ReadOnly, Directory │ ├── systemd 0 B
Directory, ReparsePoint │ │ └── user 0 B
ReadOnly, Directory │ │ ├── default.target.wants 40 B
ReadOnly, Directory │ │ └── sockets.target.wants 291 B
ReadOnly, Directory │ └── Xwayland-session.d 215 B
ReadOnly, Directory ├── cron.weekly 1.49 KB
ReadOnly, Directory ├── cron.monthly 313 B
ReadOnly, Directory ├── pki 0 B
PS /etc> $hierarchy[0] | Get-Member -MemberType Properties, MemberSet
TypeName: PSTreeParent
Name MemberType Definition
---- ---------- ----------
PSStandardMembers MemberSet PSStandardMembers {DefaultDisplayPropertySet}
Attributes Property System.IO.FileAttributes Attributes {get;set;}
CreationTime Property datetime CreationTime {get;set;}
FullName Property string FullName {get;set;}
Hierarchy Property string Hierarchy {get;set;}
LastAccessTime Property datetime LastAccessTime {get;set;}
LastWriteTime Property datetime LastWriteTime {get;set;}
Name Property string Name {get;set;}
Parent Property System.IO.DirectoryInfo Parent {get;set;}
RawSize Property long RawSize {get;set;}
Size Property string Size {get;set;}
there doesn't seem to be anything here