Estoy tratando de agregar C:\xampp\php
a mi PATH
variable de entorno del sistema en Windows.
Ya lo he agregado usando el cuadro de diálogo Variables de entorno.
Pero cuando escribo en mi consola:
C:\>path
no muestra el nuevo C:\xampp\php
directorio:
PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin
Tengo dos preguntas:
- ¿Por qué pasó esto? ¿Hay algo que hice mal?
- Además, ¿cómo agrego directorios a mi
PATH
variable usando la consola (y programáticamente, con un archivo por lotes)?
windows
command-line
path
environment-variables
Netorica
fuente
fuente
Respuestas:
Esto solo modifica el registro. Un proceso existente no usará estos valores. Un nuevo proceso lo hará si se inicia después de este cambio y no hereda el entorno anterior de su padre.
No especificó cómo comenzó la sesión de la consola. La mejor manera de garantizar esto es salir del shell de comandos y ejecutarlo nuevamente. Entonces debería heredar la RUTA actualizada.
fuente
WM_SETTINGCHANGE
se enviara un mensaje desde una aplicación? stackoverflow.com/a/8358361Opción 1
Después de cambiar
PATH
con la GUI, cierre y vuelva a abrir la ventana de la consola.Esto funciona porque solo los programas iniciados después del cambio verán lo nuevo
PATH
.opcion 2
Ejecute este comando en la ventana de comandos que ha abierto:
Este comando se agrega
C:\your\path\here\
al actualPATH
.Desglosándolo:
set
- Un comando que cambia las variables de entorno de cmd solo para la sesión de cmd actual ; otros programas y el sistema no se ven afectados.PATH=
- Significa quePATH
es la variable de entorno que se cambiará temporalmente.%PATH%;C:\your\path\here\
- La%PATH%
parte se expande al valor actual dePATH
, y;C:\your\path\here\
luego se concatena a ella. Esto se convierte en lo nuevoPATH
.fuente
Puede agregar permanentemente una ruta
PATH
con elsetx
comando:Elimine la
/M
bandera si desea configurar el usuario enPATH
lugar del sistemaPATH
.Notas:
setx
comando solo está disponible en Windows 7 y versiones posteriores.Debe ejecutar este comando desde un símbolo del sistema elevado.
Si solo desea cambiarlo para la sesión actual, use set .
fuente
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"
establecer el valor de la RUTA a nivel de máquina%PATH%
variable, este comando combina las variables env globales con las de los usuarios. ¿No es así? Esto puede crear efectos secundarios no deseados, especialmente con el%PATH%
variable puede no estar en sintonía con las variables de entorno, ya que se carga en el lanzamiento del símbolo del sistema y nunca vuelve a cargar después (incluso cuando se ejecuta el comando setx). También podría haber sido cambiado localmente por scripts ejecutados previamente.No necesita ninguno
set
osetx
comando, simplemente abra la terminal y escriba:Esto muestra el valor actual de la variable PATH. ¿Ahora quieres agregarle un directorio? Simplemente escriba:
Si por alguna razón desea borrar la variable PATH (sin rutas o eliminar todas las rutas), escriba:
Actualizar
Como Danial Wilson señaló en el comentario a continuación, establece el camino solo en la sesión actual. Para establecer la ruta de forma permanente, use
setx
pero tenga en cuenta, aunque eso establece la ruta de forma permanente, pero NO en la sesión actual, por lo que debe iniciar una nueva línea de comando para ver los cambios, más información aquí .Para verificar si existe una variable ambiental o ver su valor, use el comando ECHO:
fuente
PATH %PATH%;C:\Program Files\...
lugar dePATH "%PATH%;C:\Program Files\..."
¡Usaría PowerShell en su lugar!
Para agregar un directorio a PATH utilizando PowerShell, haga lo siguiente:
Para establecer la variable para todos los usuarios, en toda la máquina, la última línea debería ser como:
En un script de PowerShell, es posible que desee verificar la presencia de su
C:\xampp\php
antes de agregar a PATH (en caso de que se haya agregado previamente). Puedes envolverlo en unif
condicional.Poniéndolo todo junto:
Mejor aún, uno podría crear una función genérica. Simplemente proporcione el directorio que desea agregar:
Podrías mejorar las cosas puliendo un poco. Por ejemplo, usando
Test-Path
para confirmar que su directorio realmente existe.fuente
SetEnvironmentVariable
con elMachine
parámetro que necesita para abrir PowerShell con derechos de administrador$env:userprofile
.user
omachine
en la llamada deGetEnvironmentVariable
. De lo contrario,$PATH
contendrá el valor de la parte del registro tanto del usuario como de la máquina, que explotará innecesariamente la variable de ruta al almacenarla nuevamente.SETX más seguro
Asiente con la cabeza a todos los comentarios sobre la respuesta inicial de @ Nafscript
SETX
.SETX
por defecto actualizará su ruta de usuario .SETX ... /M
actualizará la ruta de su sistema .%PATH%
contiene la ruta del sistema con la ruta del usuario añadidaAdvertencias
PATH
-SETX
truncará su basura más de 1024 caracteresSETX %PATH%;xxx
: agrega la ruta del sistema a la ruta del usuarioSETX %PATH%;xxx /M
: agrega la ruta del usuario a la ruta del sistemaLa página ss64 SETX tiene algunos muy buenos ejemplos. Es importante señalar dónde están las claves de registro para
SETX
vsSETX /M
Instrucciones de uso
Agregar al usuario
PATH
append_user_path.cmd
Agregar al sistema
PATH
append_system_path.cmd
. Debe ejecutarse como administrador.(es básicamente lo mismo excepto con un diferente
Key
y elSETX /M
modificador)Alternativas
Finalmente, existe una versión potencialmente mejorada llamada SETENV recomendada por la página SETX ss64 que divide la configuración de las variables de entorno del usuario o del sistema.
1. No es estrictamente cierto
fuente
Tarde a la fiesta, pero útil si ya está en el directorio que desea agregar a PATH.
set PATH=%PATH%;%CD%
editar: según el comentario: funciona con cmd estándar de Windows pero no en PowerShell.
Para powershell, el
%CD%
equivalente es[System.Environment]::CurrentDirectory
fuente
[System.Environment]::CurrentDirectory
Además de todas las respuestas, si desea una buena herramienta GUI para editar sus variables de entorno de Windows, puede usar Rapid Environment Editor
¡intentalo! es seguro de usar e increíble!
http://www.rapidee.com/en/
fuente
Para anular ejecutables ya incluidos;
fuente
Verificando las sugerencias anteriores en Windows 10 LTSB, y con un vistazo a los contornos de "ayuda" (que se pueden ver al escribir 'command /?' En el cmd), llegué a la conclusión de que el comando PATH cambia la variable de entorno del sistema Los valores de ruta solo para la sesión actual, pero después de reiniciar, todos los valores se restablecen a sus valores predeterminados, tal como estaban antes de usar el comando PATH.
Por otro lado, usar el comando SETX con privilegios administrativos es mucho más poderoso, cambia esos valores para siempre (o al menos hasta la próxima vez que se use este comando o hasta la próxima vez que esos valores sean manipulados manualmente por la GUI ...).
Pero en aras de la claridad, pensé que compartir aquí el mejor uso de sintaxis SETX que me funcionó podría ayudar a alguien algún día:
donde se debe evitar cualquier signo igual '=', ¡y no te preocupes por los espacios! no es necesario insertar más comillas para una ruta que contiene espacios en su interior: el signo de división ';' Hacer el trabajo.
La palabra clave PATH que sigue a SETX define qué conjunto de valores se debe cambiar entre los valores posibles de las Variables de entorno del sistema, y el% PATH% (la palabra PATH rodeada por el signo de porcentaje) dentro de las comillas, le dice al sistema operativo que deje el valor existente RUTA valores como son y agregue la siguiente ruta (la que sigue el signo de división ';') a los valores existentes.
HTH
fuente
Con respecto al punto 2 , estoy usando un archivo por lotes simple que está poblando
PATH
u otras variables de entorno para mí. Por lo tanto, no hay contaminación de las variables ambientales por defecto. Se puede acceder a este archivo por lotes desde cualquier lugar para que pueda escribir:fuente
source
un archivo así, como. mybatchfile
)En un símbolo del sistema, le dice a Cmd que use la línea de comando del Explorador introduciéndola con
start
.Por lo tanto
start Yourbatchname
.Tenga en cuenta que debe registrarse como si su nombre fuera
batchfile.exe
.Se pueden agregar programas y documentos al registro, de modo que escribir su nombre sin su ruta en el cuadro de diálogo Inicio - Ejecutar o en el acceso directo permite que Windows los encuentre.
Este es un archivo de registro genérico. Copie las líneas a continuación en un nuevo documento de texto y guárdelo como anyname.reg. Edítelo con sus programas o documentos.
En las rutas, use \ para separar los nombres de las carpetas en las rutas clave, ya que regedit usa una sola \ para separar sus nombres clave. Todos los archivos de registro comienzan con REGEDIT4. Un punto y coma convierte una línea en un comentario. El símbolo @ significa asignar el valor a la clave en lugar de un valor con nombre.
El archivo no tiene que existir. Esto se puede usar para configurar Word.exe para abrir Winword.exe.
Escribir
start batchfile
comenzará iexplore.exe.Ya te han dicho sobre el camino en otra respuesta. Consulte también las
doskey /?
macros cmd (solo funcionan al escribir).Puede ejecutar comandos de inicio para CMD. Desde la referencia técnica del kit de recursos de Windows
AutoRun
Descripción
Contiene comandos que se ejecutan cada vez que inicia Cmd.exe.
fuente
Una mejor alternativa al Panel de control es usar este programa gratuito de sourceforge llamado Pathenator:
https://sourceforge.net/projects/pathenator/
Sin embargo, solo funciona para el sistema que tiene Dot.Net 4.0 o superior, como Windows 7,8 o 10.
fuente
Si ejecuta el comando
cmd
, actualizará todas las variables del sistema para esa ventana de comando.fuente
exit
dos veces, primero para cerrar la nueva y luego para cerrar la primera sesión (con el entorno anterior).usar empanadas de gtools
hace las cosas de forma intuitiva, por ejemplo:
¡y muestra resultados sin la necesidad de generar un nuevo cmd !
fuente
Copia de seguridad de mi variable de entorno PATH actual: ejecutar
cmd
y ejecutar comando:path >C:\path-backup.txt
Obtener mi valor de ruta actual en el archivo C: \ path.txt (de la misma manera)
setx path "Here you should insert string from buffer (new path value)"
php -v
fuente
Por trivial que sea, tuve que reiniciar Windows cuando me enfrenté a este problema.
Estoy ejecutando Windows 7 x64. Hice una actualización manual de la variable PATH del sistema. Esto funcionó bien si ejecuto cmd.exe desde el menú de estadísticas. Pero si escribo "cmd" en la barra de direcciones del Explorador de Windows, parece cargar la RUTA desde otro lugar, que no tenía mis cambios manuales.
(Para evitar dudas, sí, cerré y volví a ejecutar cmd un par de veces antes de reiniciar y no ayudó).
fuente