Private/Wissen/B_Basic/B31_Aliase.ps1

<#
 
# Aliase
 
Aliase sind Aufrufkürzel für ein Cmdlet und erleichten die Arbeit nur in der **Console**.
 
- **Hashtags** Aliase gci ls dir ping
 
- **Version** 2020.5.26
 
#>


[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingCmdletAliases', '')]
param()

# ! 1. Ein Alias ist ein Aufrufkürzel für ein Cmdlet.
# ! 2. Eine Parameter-Vorbelegung ist nicht möglich.
# ! 3. Es gibt Default-Aliase, aber es können auch eigene Aliase definiert werden.
# ! 4. Default-Aliase können überschrieben werden. (GEFAHR)
# ! 5. Aliase müssen für jede Sitzung erneut definiert werden bzw. werden beim importieren eines Modules definiert.

#! Aliase erleichten die Arbeit in der **Console**, sollen **aber nicht in Skripten** verwendet werden da sonst die Lesbarkeit darunter leidet und die Gefahr besteht das Änderungen am Alias-System das Skript unbrauchbar/fehlerhaft machen!

# TIPP: gci (Get-ChildItem) gcm (Get-Command) gm (Get-Member) ? (Where-Object) % (ForEach-Object)

# READ Weiterführende und Nachschlage-Informationen:

Get-Help -Name 'about_Aliases' -ShowWindow
Get-Command -Noun 'Alias'

#region Beispiel Lesbarkeit vs. Tastenanschlag-Einsparung

Get-Process | Where-Object -Property 'Company' -like -Value 'Microsoft*' | Sort-Object -Property 'Name' | Format-Table -Property 'Name', 'Company'
#! vs.
gps | ? Company -li Microsoft* | sort Name | ft Name, Company

#endregion

# ? Übersicht aller Aliase:

Get-Alias
# * oder:
Get-Command -CommandType 'Alias'
# * oder:
Get-ChildItem -Path 'Alias:\'

# ? Wie lautet das Cmdlet für den Alias 'ls', 'tnc':

Get-Alias -Name 'ls'

# ? Welche Aliase gibt es für das Cmdlet 'Get-ChildItem':

Get-Alias -Definition 'Get-ChildItem'

# ? Eigene Aliase erstellen (PowerShell sticht DOS):

Test-NetConnection -ComputerName '127.0.0.1'
New-Alias -Name 'ping' -Value 'Test-NetConnection' -Option 'Constant'
ping 127.0.0.1

# ! Aliase werden nach Sitzungsende wieder gelöscht. Siehe daher auch: Export-Alias; Import-Alias

# ? Welche Cmdlets beschäftigen sich mit Aliase:

Get-Command -Noun 'Aliase'

# ? Alias werden in einem PSProvider gespeichert/organisiert:
Get-ChildItem -Path 'Alias:\'

# TIPP - Z.B. die Cmdlets Get-Command (gcm) und Get-Member (gm) sind Cmdlets die i.d.R. nur temporär benutzt werden. Daher lohnt es sich diese zu kennen.

#region Parameter-Aliase

# ! Für Parameter können auch Aliase definiert sein, diese werden jedoch nicht VOLLSTÄNDIG in der Hilfe angezeigt.

# ? Welche es sein können erfahren Sie so:

Get-Command -Name 'Get-ChildItem' |  Select-Object -ExpandProperty 'Parameters' |  Select-Object -ExpandProperty 'Values' |  Select-Object -Property 'Name', 'Aliases'

#endregion

# TODO QUIZ - https://attilakrick.com/schlagwort/powershell-cmdlet/