Comment puis-je obtenir les variables Environnment et si quelque chose manque, définir la valeur?Comment obtenir et définir les variables d'environnement en C#?
Répondre
Utilisez la classe System.Environment.
La méthode
System.Environment.GetEnvironmentVariable()
et
System.Environment.SetEnvironmentVariable()
fera le travail pour vous.
Cela fonctionnera pour une variable d'environnement qui est le paramètre de la machine. Pour les utilisateurs, il suffit de passer à Utilisateur à la place.
String EnvironmentPath = System.Environment
.GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
je suis tombé sur ce tout en travaillant sur une application console .NET pour lire la variable d'environnement PATH, et constaté que l'utilisation System.Environment.GetEnvironmentVariable augmentera automatiquement les variables d'environnement. Je ne voulais pas que cela se produise ... cela signifie que les dossiers du chemin tels que '% SystemRoot% \ system32' étaient réécrits en tant que 'C: \ Windows \ system32'. Pour obtenir le chemin non-développé, j'ai dû utiliser ceci:
string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
Travaillé comme un charme pour moi.
+1 J'ai dû utiliser cette solution parce que l'autre répondant de Patrick Desjardins m'a demandé d'avoir des privilèges d'administrateur. J'ai été capable de lire la valeur de la variable d'environnement sans avoir de privilèges d'administration avec cette solution! –
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
Si vous voulez que votre variable PATH soit permanente, utilisez plutôt 'EnvironmentVariableTarget.Machine'. –
et ECRIRE
Get
string getEnv = Environment.GetEnvironmentVariable("envVar");
Set
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
je pourrais être en mesure de mettre à jour la variable d'environnement en utilisant le
suivantstring 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. définir et obtenir des variables dans moive - actionscript 3
- 2. obtenir et définir les questions
- 3. Modifier les variables globales en C++
- 4. Problème avec les variables locales en C#
- 5. Comment définir les valeurs par défaut pour les variables Tcl?
- 6. variables simples en Java et C++
- 7. C# - Comment parcourir les classes champs et définir les propriétés
- 8. les variables Net-SNMP en C++
- 9. C# Comment vider toutes les variables et les valeurs actuelles pendant l'exécution
- 10. Python - Paramétrer/Obtenir des variables d'environnement et des Addrs
- 11. Comment obtenir et définir les en-têtes http dans une action, de manière testable
- 12. Comment gérer ThreadPool et les variables membres?
- 13. Assemblage en ligne dans la commande C: INT et les variables C
- 14. Obtenir les temps de noyau en C#
- 15. Les variables statiques et d'instance privées sont-elles héritées en C# et pourquoi?
- 16. Comment gérer les listes d'enfants et obtenir de nouvelles listes d'objets en C# en utilisant LINQ?
- 17. Jquery, xml et les variables
- 18. Comment déclarer deux variables statiques différentes? (C++)
- 19. Récupère les informations sur les fichiers en variables?
- 20. Comment obtenir les coordonnées d'un élément HTML en utilisant C#?
- 21. Supprimer les variables dans la fenêtre immédiate en C#
- 22. Comment obtenir les en-têtes de «C» frameworks écrits?
- 23. Comment obtenir les N premiers éléments d'une liste en C#?
- 24. Comment obtenir/définir le chemin du répertoire logique en python
- 25. Comment définir et utiliser des variables statiques dans la classe F #
- 26. Comment définir les variables de navigation dans les pages maîtres MVC
- 27. Zend Framework comment définir les en-têtes
- 28. ASP.NET C# Les variables statiques sont globales?
- 29. Comment obtenir l'heure du système en C++?
- 30. Comment définir les variables d'environnement pour le fichier ANT build.xml? (Java)
Notez également le troisième paramètre optionnel: System.Environment.SetEnvironmentVariable (variable, valeur, ** EnvironmentVariableTarget **) Les valeurs possibles sont: * Machine *, * Processus * et * utilisateur * Est-ce que –
' EnvironmentVariableTarget.Machine' nécessite un accès administrateur? – checksum
Oui, c'est le cas. Essayer de l'exécuter sans entraîner une exception évidente. –