
Ich fange gerade an, Powershell zu lernen, und schon fängt eine Sache an, mich zu ärgern.
Die unerwünschte und unfair verwirrende Unterscheidung zwischen $env:Home
und $HOME
. Wobei die $HOME
automatische Vervollständigung durch die Eingabe von $hom
> erfolgt Tab, für das Gegenstück müssen wir jedoch $env:Ho
> eingeben Tab.
Mir ist aufgefallen, dass es $HOME
sich dabei um eine Art globale Variable handelt, die auch nach einem Systemneustart in jeder Powershell-Sitzung bestehen bleibt.
Daher die Frage: Wie erstelle ich solche persistenten und globalen Variablen und weise ihnen Werte entweder aus der Befehlsausgabe oder der Ausgabe von Umgebungsvariablen oder dem direkten Verzeichnis-/Dateipfad zu?
Antwort1
Sie haben Recht, $home
es handelt sich um eine globale Variable in Powershell. Diese unterscheiden sich von Umgebungsvariablen. Die gute Nachricht ist, dass Sie Ihre eigenen erstellen können.
Eine Möglichkeit, Ihr Ziel zu erreichen, besteht darin, Ihr Powershell-Profil zu bearbeiten (@Lee_Dailey hat dies in einem Kommentar erwähnt).
- Suchen Sie zunächst die
profile.ps1
Datei, auf die Sie dies anwenden möchten.
Es gibt einige davon an verschiedenen Orten und jede entspricht unterschiedlichen Benutzern/Berechtigungen. Sie können verwendenDasum auszuwählen, auf welches Sie es anwenden möchten. Ich werde verwendenC:\Users\<username>\Documents\WindowsPowerShell\profile.ps1
. - Fügen Sie Ihre Variablen wie folgt hinzu:
$docs = "C:\Users\<username>\Documents"
# ^^^ ^^^
# name value
- Starten Sie Powershell neu
- Sie können es jetzt mit derselben Funktionalität wie verwenden
$home
.
cd $docs