Estoy buscando una manera conveniente de agregar y / o modificar y / o eliminar una variable de entorno desde la línea de comandos. Particularmente, a veces me encuentro en situaciones en las que tengo que agregar algunas variables en cmd.exe.
Estaría agradecido si alguien me mostrara una forma no GUI para modificar (es decir: agregar un nuevo directorio) la %PATH%
variable.
El cambio debe ser permanente, no solo por la duración de la cmd
sesión.
command-line
environment-variables
René Nyffenegger
fuente
fuente
Respuestas:
El método de la vieja escuela de manipular directamente las variables de registro con el comando reg estaba en el dinero. Así es como lo haces:
Tíralo en un script de una línea llamado apath.bat que se ve así:
Luego, todo lo que necesita proporcionar es la ruta del nuevo directorio que está agregando al llamar al script y está marcado:
por ejemplo: apath.bat% addonpath%
Aunque Hinch tiene razón. La mejor manera de hacerlo si está usando Vista o superior es usar el comando SETX que está diseñado para permitirnos propagar variables de entorno sin el riesgo de manipular directamente el registro con el comando reg que podría salvar su máquina si manipulas las variables ENV lo suficiente como para usarlo sobre la marcha.
fuente
Podrías usar setx.
Variable de usuario:
Variable del sistema:
fuente
echo %PATH%
, los ves combinados, como<system path>;<user path>
. Por lo tanto, el primer comando forzará que los elementos actuales de la ruta del sistema aparezcan en la ruta del usuario (que no es tan malo), mientras que el segundo comando hará que los elementos actuales de la ruta del usuario aparezcan en la ruta del sistema (lo cual es inaceptable).Puede usar la
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
clave de registro para apuntar a un archivo por lotes, para permitirle hacer cambios semipermanentes sin profundizar en los diálogos de configuración arcana.fuente
Si no desea usar la GUI (como en Panel de control, Sistema, Avanzado, Variables de entorno, RUTA), probablemente pueda usar
REG
para configurarHKCU\Environment\PATH
.%PATH%
REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f
Las
/f
fuerzas de sobreescritura del valor existente, de modo que no tienen que responder a la pregunta de forma interactiva.Editar:
%PATH%
necesita ser citado.Editar: También vale la pena señalar que esto probablemente requiere un reinicio o reinicio de sesión antes de que surta efecto. Si bien cambiarlo en la GUI surte efecto inmediatamente (para nuevas
cmd.exe
sesiones).Referencia: http://support.microsoft.com/kb/104011
Como se señaló en la referencia, si desea escribir algún código, puede enviar WM_SETTINGCHANGE y eso debería evitar el requisito de inicio / cierre de sesión.
fuente
REG QUERY HKCU\Environment /v PATH
.Es fácil cambiar la ruta en el proceso actual de cmd.exe:
Siempre puede hacer HELP PATH para obtener ayuda sobre el comando PATH.
fuente
Para cambios verdaderamente permanentes en todo el sistema, realmente desea utilizar el panel de control del sistema (también conocido como Mi PC -> Propiedades -> Avanzado -> Variables de entorno, para WinXP). La configuración allí afecta a todo el sistema, incluidos los programas GUI en el shell de Explorer.
Si solo necesita estos cambios en el
cmd.exe
shell, puede ejecutar un archivo por lotes que los establece cada vez que inicia una ventana cmd.exe. La respuesta de Phoshi menciona laHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
, que parece una excelente opción: es fácil realizar pequeños cambios y volver a ejecutar desde la línea de comandos si es necesario. Pero esto no afectará a las ventanas GUI o al shell del Explorer.De hecho, me sorprende que Sysinternals no tenga una utilidad capaz de hacer esto. ¿Quizás otro de los PStools pueda hacerlo?
fuente
Muchas formas de hacer esto. REG ADD es uno, o REG IMPORT (usando un archivo .REG exportado desde otra computadora). SETX / M es otro. También puede eliminarlo utilizando las Preferencias de directiva de grupo (la forma más fácil para grandes cantidades de computadoras)
fuente
Otro pensamiento no mencionado aquí, crea un script de autohotkey que abrirá el panel de control y lo ingresará por ti. Funciona bien si ya eres usuario de AHK :-)
https://autohotkey.com/board/topic/63210-modify-system-path-gui/
Además, ¿qué pasa con la edición de hklm / system / currentcontrolset001 / control / session manager / environment: clave de ruta? Pero la misma clave está bajo hklm / system / currentcontrolset002 y hklm / system / currentcontrolset. Parece que esto podría ser correcto, aquí: /programming/3304463/how-do-i-modify-the-path-environment-variable-when-running-an-inno-setup-install
fuente