Wie erstelle ich benutzerdefinierte globale systemweite Variablen wie $Home in Powershell und weise ihnen einen dauerhaften Wert zu?

Wie erstelle ich benutzerdefinierte globale systemweite Variablen wie $Home in Powershell und weise ihnen einen dauerhaften Wert zu?

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:Homeund $HOME. Wobei die $HOMEautomatische 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 $HOMEsich 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, $homees 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).

  1. Suchen Sie zunächst die profile.ps1Datei, 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 verwenden C:\Users\<username>\Documents\WindowsPowerShell\profile.ps1.
  2. Fügen Sie Ihre Variablen wie folgt hinzu:
$docs = "C:\Users\<username>\Documents"
# ^^^         ^^^
# name       value
  1. Starten Sie Powershell neu
  2. Sie können es jetzt mit derselben Funktionalität wie verwenden $home.
cd $docs 

verwandte Informationen