doctordeploylogo
[ Prev ] [ Next ] | [ Home ] [ Sitemap ] .. -... .. -.- .-. .- ... ...

Profile Scripts in Powershell

03/2016

Was .bashrc für bash, ist Microsoft.PowerShell_profile.ps1 für Powershell. Allerdings gibt's hier Benutzer- und Systembezogene Startscripte (mehr dazu hier):

1 %windir%\system32\WindowsPowerShell\v1.0\profile.ps1 
2 %windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1 
3 %UserProfile%\Documents\WindowsPowerShell\profile.ps1 
4 %UserProfile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 

Wir nehmen als Beispiel mal das letzte (welches mit "$profile" vom PS-Prompt angezeigt werden kann) und konzentrieren uns auf Aliase und Functions.

Idealerweise definiert man dort Abkürzungen (Set-Alias) für oft verwendete Tools (die man aber nicht in den Path aufnehmen möchte), z.B.:

1 sal n c:\apps\nano\nano.exe
2 sal b c:\apps\brief\b.exe
3 sal 7za c:\apps\7z\7za.exe
4 sal bc c:\apps\bc4\bcompare.exe

Komplexere Befehle oder Befehle mit Parametern muss man davor als function definieren:

1 function ver { $psversiontable }
2 function lsps1 { ls c:\apps\-batches -file -filter *.ps1 }
3 function env ($envname) { ls env:\$envname }
4 function path { env path | fl }

Damit hat man die Funktionen "ver", "lsps1", "path" und "env", die so auf der Powershell-Commandline oder in Powershell-Scripts genutzt werden können.

Tipp #1: Die Funktion "env" gibt Parameter weiter, d.h. "env p*" o.ä. ist möglich
Tipp #2: Nachfolgende Funktionen können davor definierte Aliase/Funktionen verwenden (siehe "path")
Tipp#3: Mit "gc $profile" kann man sich die ProfileScript-Datei direkt anzeigen lassen