Wie bekomme ich Umgebungsvariablen und wenn etwas fehlt, den Wert setzen?Wie bekomme und setze ich Umgebungsvariablen in C#?
Antwort
Verwenden Sie die System.Environment-Klasse.
Verfahren
System.Environment.GetEnvironmentVariable()
und
System.Environment.SetEnvironmentVariable()
wird die Arbeit für Sie tun.
Dies funktioniert für eine Umgebungsvariable, die Maschineneinstellung ist. Für Benutzer wechseln Sie stattdessen einfach zu Benutzer.
String EnvironmentPath = System.Environment
.GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
Ich lief in diese, während auf einer .NET-Konsolenanwendung arbeiten, um die Umgebungsvariable PATH zu lesen und festgestellt, dass System.Environment.GetEnvironmentVariable mit automatisch den Umgebungsvariablen erweitern.
Ich wollte das nicht passieren ... das heißt, Ordner im Pfad wie '% SystemRoot% \ system32' wurden als 'C: \ Windows \ system32' neu geschrieben. Um den unexpanded Pfad zu bekommen, musste ich folgendes verwenden:
string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
Arbeitete wie ein Charme für mich.
+1 Ich musste diese Lösung verwenden, da der andere, der von Patrick Desjardins beantwortet wurde, Administratorrechte hatte. Ich konnte den Wert der Umgebungsvariable ohne Administratorrechte mit dieser Lösung lesen! –
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
Wenn Sie möchten, dass Ihre PATH-Variable dauerhaft verwendet wird, verwenden Sie stattdessen "EnvironmentVariableTarget.Machine". –
Get und Set
Get
string getEnv = Environment.GetEnvironmentVariable("envVar");
Set
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
ich mit dem folgenden
die Umgebungsvariable aktualisieren Lage sein könntestring EnvPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty;
if (!string.IsNullOrEmpty(EnvPath) && !EnvPath .EndsWith(";"))
EnvPath = EnvPath + ';';
EnvPath = EnvPath + @"C:\Test";
Environment.SetEnvironmentVariable("PATH", EnvPath , EnvironmentVariableTarget.Machine);
- 1. Wie setze ich Umgebungsvariablen mit - (Strich) Optionen
- 2. Wie setze ich Umgebungsvariablen mit bosh?
- 3. Wie setze ich Windows-Umgebungsvariablen dauerhaft?
- 4. Wie setze ich Umgebungsvariablen im Makefile-Rezept?
- 5. Wie bekomme ich Umgebungsvariablen Desktop-Pfad
- 6. Wie setze ich bestimmte Umgebungsvariablen beim Debuggen in Visual Studio?
- 7. Wie setze ich Bash-Umgebungsvariablen aus einem Skript?
- 8. Lokale Umgebungsvariablen in C++ setzen
- 9. Wie setze und bekomme ich den Wert des Zeigers Swift
- 10. Wie setze ich in Android Studio die Umgebungsvariablen Set JDK_HOME und JAVA_HOME?
- 11. Wie bekomme ich alle Umgebungsvariablen als Array in PHP?
- 12. Wie bekomme und setze ich TChromium Scrollbar-Positionen?
- 13. Umgebungsvariablen Datei in C#?
- 14. Wie setze ich projektweit #define in C#
- 15. Drucken aller Umgebungsvariablen in C/C++
- 16. Wie setze ich ein Bind in C#
- 17. Umgebungsvariablen in C setzen
- 18. Wie bekomme ich Umgebungsvariablen von innerhalb von gvim
- 19. In Python-Skript, wie setze ich PYTHONPATH?
- 20. Wie setze ich einen Excel RangePtr Wert = Wert in C++? Derzeit bekomme ich HRESULT 0x80004005
- 21. fastCGI Umgebungsvariablen - woher bekomme ich eine (Standard-/offizielle) Liste?
- 22. Wie setze ich den Wert eines Makros mit Umgebungsvariablen oder Befehlszeilen in Verilog?
- 23. Wie setze ich Binärdaten mit setBlob() in C++ - Connector
- 24. Wie kombiniere ich und setze? in .bat
- 25. Wie setze ich die Zeit von datetimepicker in C# zurück
- 26. Wie setze ich mfc C++ editbox wiederholt?
- 27. Wo bekomme/setze ich die Anwendungs-ID?
- 28. Wie setze ich Wert für Objekt in Ziel c
- 29. Zugriff auf Umgebungsvariablen in C++
- 30. Wie setze ich ein Zeichen in einer Struktur in C?
Beachten Sie auch den optionalen dritten Parameter: System.Environment.SetEnvironmentVariable (Variable, Wert, ** EnvironmentVariableTarget **) Mögliche Werte sind: * Maschine *, * Prozess * und * User * –
Does ' EnvironmentVariableTarget.Machine erfordert Administratorzugriff? – checksum
Ja, tut es. Der Versuch, es ohne zu führen, führt zu einer offensichtlichen Ausnahme. –