Skip to content

Commit

Permalink
Adding Posh.demo.ps1 (Fixes #95)
Browse files Browse the repository at this point in the history
  • Loading branch information
James Brundage committed Aug 2, 2023
1 parent 1ad53c1 commit f8dd75b
Showing 1 changed file with 124 additions and 0 deletions.
124 changes: 124 additions & 0 deletions Demos/Posh.demo.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
#1. Welcome to Posh

#.Silent Clear-Host

# Posh improves the PowerShell experience.

# It enhances PowerShell formatting, and makes the shell easier to script.

# For a simple example, just echo the variable $Posh

$Posh

# Let's take a quick tour of some of the ways Posh makes PowerShell cooler.

#2. Enhanced Formatting

#.Silent Clear-Host

#2.1. File Colorization and Icons

# Posh shows files in color with (hopefully) helpful icons and clickable links.

Get-Module Posh |
Split-Path |
Get-ChildItem

# Posh's icons do not require NerdFonts, and will be ignored in favor of Terminal-Icons, if that's what you prefer.

#.Silent Clear-Host

#2.2 Get-Command in Color

# Posh also updates the formatter for Get-Command.

# It slims the output to just the Name and the Module,
# and colorizes the Name based off the verb.

Get-Command -Module Microsoft.PowerShell.*

#.Silent Clear-Host

#2.3. Get-Member in Color

# Get-Member is one of the three most useful commands in PowerShell

# Posh lets you see it in color:

Get-Command | Get-Member

#.Silent Clear-Host

#2.4 Reflection formatting

# Posh also makes it easy to explore reflection.

# Just pipe a type to Format-Custom.


[int] | Format-Custom

# By default, this only shows you short set of information about just that type.

# To see _everything_ about an object, use something like

[int] | Format-Custom -View System.Type.Full


# This also works for generic types.

[Collections.Generic.Dictionary[string, PSObject]] |
Format-Custom -View System.Type.Full

#2.5 Colorized XML

#.Silent Clear-Host

# Posh also makes XML more colorful in the console.

Invoke-RestMethod https://pssvg.start-automating.com/Examples/HelloWorld.svg

#2.6 Colorized Regular Expressions

#.Silent Clear-Host

# Regular Expressions are also syntax highlighted, helping us all hopefully understand them better.

[Regex]::new('
(?<NameOfCaputre>Pattern) # Comment
','IgnoreCase,IgnorePatternWhitespace')


#2.7 Get-Process heatmap

# Posh also makes the formatter for Get-Process show a heatmap of various properties.

Get-Process -id $pid

#2.8 TimeSpans and TimeZones

#.Silent Clear-Host

# Posh also simplifies the display for TimeZones and Timespans

New-TimeSpan -Hours 24 -Minutes 30 -Seconds 15

# We can also display timespans in their ISO format!

New-TimeSpan -Hours 24 -Minutes 30 -Seconds 15 |
Format-Custom -View ISO-8601


# TimeZones also get more readable by trimming the number of displayed properties.

Get-TimeZone

# We only show the ID and DisplayName.

# We also add a .LocalTime for ease of use.

# This makes a simple PowerShell command console World Clock.

Get-TimeZone -ListAvailable


0 comments on commit f8dd75b

Please sign in to comment.