Code Monkey home page Code Monkey logo

pstree's Introduction

PSTree

Tree like cmdlet for PowerShell!

build codecov PowerShell Gallery LICENSE

PSTree is a PowerShell Module that includes the Get-PSTree cmdlet that intends to emulate the tree command with added functionalities to calculate the folders size as well as recursive folders size.

Documentation

Check out the docs for information about how to use this Module.

Installation

Gallery

The module is available through the PowerShell Gallery:

Install-Module PSTree -Scope CurrentUser

Source

git clone 'https://github.com/santisq/PSTree.git'
Set-Location ./PSTree
./build.ps1

Requirements

Compatible with Windows PowerShell v5.1 and PowerShell 7+.

Usage

Get the current directory tree with default parameters values

PS ..\PSTree> Get-PSTree | Select-Object -First 20

   Source: C:\path\to\PSTree

Mode            Length Hierarchy
----            ------ ---------
d----         31.20 KB PSTree
-a---          4.64 KB ├── .gitignore
-a---        137.00  B ├── .markdownlint.json
-a---          2.16 KB ├── build.ps1
-a---          7.90 KB ├── CHANGELOG.md
-a---          1.07 KB ├── LICENSE
-a---          8.10 KB ├── PSTree.build.ps1
-a---          5.96 KB ├── README.md
-a---          1.23 KB ├── ScriptAnalyzerSettings.psd1
d----          1.74 KB ├── tools
-a---          1.60 KB │   ├── PesterTest.ps1
-a---        141.00  B │   ├── requiredModules.psd1
d----          0.00  B │   └── Modules
d----          1.44 MB │       ├── PSScriptAnalyzer
d----        401.83 KB │       ├── platyPS
d----        771.55 KB │       ├── Pester
d----        143.43 KB │       └── InvokeBuild
d----          6.76 KB ├── tests
-a---          6.76 KB │   └── PSTree.Tests.ps1
d----          0.00  B ├── src

Exclude tools and tests folders

PS ..\PSTree> Get-PSTree -Exclude *tools, *tests  | Select-Object -First 20

   Source: C:\path\to\PSTree

Mode            Length Hierarchy
----            ------ ---------
d----         31.20 KB PSTree
-a---          4.64 KB ├── .gitignore
-a---        137.00  B ├── .markdownlint.json
-a---          2.16 KB ├── build.ps1
-a---          7.90 KB ├── CHANGELOG.md
-a---          1.07 KB ├── LICENSE
-a---          8.10 KB ├── PSTree.build.ps1
-a---          5.96 KB ├── README.md
-a---          1.23 KB ├── ScriptAnalyzerSettings.psd1
d----          0.00  B ├── src
d----         10.30 KB │   └── PSTree
-a---        931.00  B │       ├── ExceptionHelpers.cs
-a---        439.00  B │       ├── PSTree.csproj
-a---          1.06 KB │       ├── PSTreeDirectory.cs
-a---          4.01 KB │       ├── PSTreeExtensions.cs
-a---        517.00  B │       ├── PSTreeFile.cs
-a---        399.00  B │       ├── PSTreeFileSystemInfo.cs
-a---          1.51 KB │       ├── PSTreeFileSystemInfo_T.cs
-a---        897.00  B │       ├── PSTreeHelper.cs
-a---        619.00  B │       ├── PSTreeIndexer.cs

Include .ps1 and .cs files and exclude some folders

PS ..\PSTree> Get-PStree -Include *.ps1, *.cs -Exclude *output, *tools, *docs, *module

   Source: C:\path\to\PSTree

Mode            Length Hierarchy
----            ------ ---------
d----         33.15 KB PSTree
-a---          2.35 KB ├── build.ps1
-a---          8.10 KB ├── PSTree.build.ps1
d----         13.29 KB ├── tests
-a---        765.00  B │   ├── FormattingInternals.tests.ps1
-a---          5.89 KB │   ├── GetPSTreeCommand.tests.ps1
-a---          1.51 KB │   ├── PathExtensions.tests.ps1
-a---          1.38 KB │   ├── PSTreeDirectory.ps1
-a---        920.00  B │   ├── PSTreeFile.tests.ps1
-a---          2.09 KB │   └── PSTreeFileSystemInfo_T.tests.ps1
d----          0.00  B ├── src
d----         12.15 KB │   └── PSTree
-a---        931.00  B │       ├── ExceptionHelpers.cs
-a---          4.09 KB │       ├── PathExtensions.cs
-a---        900.00  B │       ├── PSTreeCache.cs
-a---          1.06 KB │       ├── PSTreeDirectory.cs
-a---          1.66 KB │       ├── PSTreeExtensions.cs
-a---        517.00  B │       ├── PSTreeFile.cs
-a---        399.00  B │       ├── PSTreeFileSystemInfo.cs
-a---          1.61 KB │       ├── PSTreeFileSystemInfo_T.cs
-a---        626.00  B │       ├── PSTreeIndexer.cs
d----         16.53 KB │       ├── obj
d----          1.15 KB │       ├── Internal
d----          6.43 KB │       ├── Commands
d----          0.00  B │       └── bin
d----          4.07 KB ├── .vscode
d----          0.00  B └── .github
d----          4.17 KB     └── workflows

Get the src tree recursively displaying only folders

PS ..\PSTree> Get-PSTree .\src\ -Recurse -Directory

   Source: C:\path\to\PSTree\src

Mode            Length Hierarchy
----            ------ ---------
d----          0.00  B src
d----         10.30 KB └── PSTree
d----         16.53 KB     ├── obj
d----          0.00  B     │   └── Debug
d----         88.02 KB     │       └── netstandard2.0
d----          1.13 KB     ├── Internal
d----          5.68 KB     ├── Commands
d----          0.00  B     └── bin
d----          0.00  B         └── Debug
d----         33.31 KB             └── netstandard2.0
d----         33.11 KB                 └── publish

Display subdirectories only 2 levels deep

PS ..\PSTree> Get-PSTree .\src\ -Depth 2 -Directory

   Source: C:\path\to\PSTree\src

Mode            Length Hierarchy
----            ------ ---------
d----          0.00  B src
d----         10.30 KB └── PSTree
d----         16.53 KB     ├── obj
d----          1.13 KB     ├── Internal
d----          5.68 KB     ├── Commands
d----          0.00  B     └── bin

Get the recursive size of the folders

PS ..\PSTree> Get-PSTree .\src\ -Depth 2 -Directory -RecursiveSize

   Source: C:\path\to\PSTree\src

Mode            Length Hierarchy
----            ------ ---------
d----        188.08 KB src
d----        188.08 KB └── PSTree
d----        104.55 KB     ├── obj
d----          1.13 KB     ├── Internal
d----          5.68 KB     ├── Commands
d----         66.42 KB     └── bin

Changelog

Contributing

Contributions are more than welcome, if you wish to contribute, fork this repository and submit a pull request with the changes.

pstree's People

Contributors

santisq avatar

Stargazers

Peter Abbasi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.