¿Cómo puedo obtener variables de entorno y si falta algo, establecer el valor?¿Cómo obtengo y configuro variables de entorno en C#?
Respuesta
Utilice la clase System.Environment.
El método
System.Environment.GetEnvironmentVariable()
y
System.Environment.SetEnvironmentVariable()
va a hacer el trabajo para usted.
Esto funcionará para una variable de entorno que es la configuración de la máquina. Para los usuarios, simplemente cambie a usuario en su lugar.
String EnvironmentPath = System.Environment
.GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
me encontré con esto mientras se trabaja en una aplicación de consola .NET para leer la variable de entorno PATH, y se encontró que el uso de System.Environment.GetEnvironmentVariable se expandirá automáticamente las variables de entorno.
No quería que eso sucediera ... eso significa que las carpetas en la ruta, como '% SystemRoot% \ system32', se estaban reescribiendo como 'C: \ Windows \ system32'. Para obtener la ruta no expandido, tuve que usar esto:
string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
funcionó como un encanto para mí.
+1 Tuve que usar esta solución porque la otra respondida por Patrick Desjardins requería que tuviera privilegios de administrador. ¡Pude leer el valor de la variable de entorno sin tener privilegios de administrador con esta solución! –
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
Si desea que su variable PATH sea de uso permanente 'EnvironmentVariableTarget.Machine' en su lugar. –
obtener y establecer
Get
string getEnv = Environment.GetEnvironmentVariable("envVar");
Establecer
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
pude ser capaz de actualizar la variable de entorno mediante el uso de la siguiente
string 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. ¿Cómo configuro Mercurial para usar variables de entorno en mercurial.ini
- 2. Establecer variables de entorno local en C++
- 3. ¿Cómo obtengo el valor de las variables de entorno?
- 4. Imprimir todas las variables de entorno en C/C++
- 5. Cómo establecer variables de entorno en Python
- 6. Establecer variables de entorno en C
- 7. Acceso a variables de entorno En C++
- 8. PHP y variables de entorno Apache
- 9. ¿Cómo configuro y obtengo la etiqueta de UIButtons?
- 10. ¿Cómo configuro variables de entorno específicas al depurar en Visual Studio?
- 11. ¿Cómo configuro variables de entorno bash a partir de un script?
- 12. Ruby, Unicorn y variables de entorno
- 13. Cómo leer variables de entorno en Scala
- 14. Obtener variables de entorno usando el código C
- 15. ¿Cómo configuro un entorno de desarrollo de Python en Linux?
- 16. Diferencia entre variables de entorno y shell
- 17. Variables de entorno en Python en Linux
- 18. ¿Cómo configuro una variable de entorno en cygwin?
- 19. Mostrar variables de entorno con C en UNIX
- 20. MSBuild requiere variables de entorno
- 21. Evaluar variables de entorno en una cadena
- 22. cómo se evalúan las variables de entorno?
- 23. ¿Cómo configuro mi entorno para depurar en un dispositivo Blackberry?
- 24. Configuración de variables de entorno en EngineYard
- 25. PropertyPlaceholderConfigurer y variables de entorno en archivos .properties
- 26. Comprobación de variables de entorno
- 27. Obtener variables de entorno en Classic ASP
- 28. Variables de entorno de Javascript
- 29. claves SSH en variables de entorno
- 30. ¿Cuáles son estas extrañas variables de entorno?
También tenga en cuenta el tercer parámetro opcional: System.Environment.SetEnvironmentVariable (variable, valor, ** ** EnvironmentVariableTarget) Los valores posibles son: * La máquina *, * * Proceso y * Usuario * –
¿El ' EnvironmentVariableTarget.Machine' requiere acceso de administrador? – checksum
Sí, lo hace. Intentar ejecutarlo sin generará una excepción obvia. –