variable restaurar modificar java_home entorno crear configurar windows command-line path environment-variables

restaurar - variable path windows 10



Agregar directorio a la variable de entorno PATH en Windows (16)

Estoy tratando de agregar C:/xampp/php a la PATH entorno PATH mi sistema en Windows.

Ya lo he agregado utilizando el cuadro de diálogo Variables de entorno.

Pero cuando escribo en mi consola:

C:/>path

no muestra el nuevo directorio C:/xampp/php :

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:

  1. ¿Por qué pasó esto? ¿Hay algo que hice mal?
  2. Además, ¿cómo agrego directorios a mi variable PATH usando la consola (y programáticamente, con un archivo por lotes)?

ADVERTENCIA: Esta solución puede ser destructiva para su RUTA y la estabilidad de su sistema. Como efecto secundario, fusionará el usuario y el sistema PATH, y truncará PATH a 1024 caracteres. El efecto de este comando es irreversible. Haga una copia de seguridad de PATH primero. Vea los comentarios para más información.

No copie y pegue ciegamente esto. Utilizar con precaución.

Puede agregar permanentemente una ruta a PATH con el comando setx :

setx /M path "%path%;C:/your/path/here/"

Elimine la marca /M si desea establecer la ruta de PATH del usuario en lugar de la PATH sistema.

Notas:

  • El comando setx solo está disponible en Windows 7 y versiones posteriores.
  • Debe ejecutar este comando desde un símbolo del sistema elevado.

Opció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 el nuevo PATH .

opcion 2

Ejecute este comando en la ventana de comandos que ha abierto:

set PATH=%PATH%;C:/your/path/here/

Este comando agrega C:/your/path/here/ al PATH actual.

Romperlo:

  • set : un comando que cambia las variables de entorno de cmd solo para la sesión cmd actual ; Otros programas y el sistema no se ven afectados.
  • PATH= - Significa que PATH es la variable de entorno que se cambiará temporalmente.
  • %PATH%;C:/your/path/here/ - La parte %PATH% expande al valor actual de PATH , y luego se concatena con ;C:/your/path/here/ . Esto se convierte en el nuevo PATH .

SETX más seguro

Mucha atención a todos los comentarios sobre la respuesta SETX inicial de @Nafscript .

  • 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 agregada

Advertencias

  1. Haga una copia de seguridad de su PATH - SETX truncará su basura con más de 1024 caracteres
  2. No llame a SETX %PATH%;xxx : agrega la ruta del sistema a la ruta del usuario
  3. No llame a SETX %PATH%;xxx /M : agrega la ruta del usuario a la ruta del sistema
  4. El uso excesivo de archivos por lotes puede causar ceguera 1

La página ss64 SETX tiene algunos ejemplos muy buenos. Es importante señalar que las claves del registro son para SETX vs SETX /M

Variables de usuario:

HKCU/Environment

Variables del sistema:

HKLM/SYSTEM/CurrentControlSet/Control/Session Manager/Environment

Instrucciones de uso

Anexar al usuario PATH

append_user_path.cmd

@ECHO OFF REM usage: append_user_path "path" SET Key="HKCU/Environment" FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B ECHO %CurrPath% > user_path_bak.txt SETX PATH "%CurrPath%";%1

Anexar al sistema PATH

append_system_path.cmd . Debe ejecutarse como administrador.

(es básicamente lo mismo, excepto con una Key diferente y el modificador SETX /M )

@ECHO OFF REM usage: append_system_path "path" SET Key="HKLM/SYSTEM/CurrentControlSet/Control/Session Manager/Environment" FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B ECHO %CurrPath% > system_path_bak.txt SETX PATH "%CurrPath%";%1 /M

Alternativas

Finalmente, potencialmente hay una versión mejorada llamada SETENV recomendada por la página SETX de ss64 que se divide configurando las variables de entorno del usuario o del sistema.

1. No es estrictamente cierto


  1. He instalado PHP esa vez. Php-7 extraído . Zip en C: / php /
  2. Haga una copia de seguridad de mi variable de entorno PATH actual: ejecute cmd y ejecute el comando: path >C:/path-backup.txt

  3. Obtener el valor de mi ruta actual en el archivo C: / path.txt (de la misma manera)

  4. Modificar path.txt (claro, la longitud de mi ruta es más de 1024 caracteres, las ventanas se ejecutan pocos años)
    • He eliminado rutas duplicadas allí, como ''C: / Windows; o C: / Windows / System32; o C: / Windows / System32 / Wbem; - Tengo dos veces.
    • Quitar las rutas de programas desinstalados también. Ejemplo: C: / Archivos de programa / NonExistSoftware;
    • De esta manera, la longitud de la cadena de mi ruta <1024 :)))
    • al final de la cadena de ruta agregue; C: / php /
    • Copie el valor de ruta solo en el búfer con comillas dobles enmarcadas! Ejemplo: "C: / Windows; ****; C: / php /" No PATH = debería estar allí !!!
  5. Abra Windows PowerShell como administrador.
  6. Ejecutar comando:

setx path "Here you should insert string from buffer (new path value)"

  1. Vuelva a ejecutar su terminal (yo uso "Far Manager") y verifique: php -v

¿Qué pasa si escribes mal la ruta usando setx? La mejor manera es simplemente a través de las ventanas UI Panel de control-> Todos los elementos del Panel de control-> Sistema-> Configuración avanzada del sistema-> Variables de entorno

Desplázate hasta Ruta y selecciona Editar. También puedes copiarlo y pegarlo en tu editor favorito para que puedas ver la ruta completa y editarla más fácilmente.


Al revisar las sugerencias anteriores en Windows 10 LTSB y vislumbrar los esquemas de "ayuda" (que se pueden ver al escribir ''comando /?'' En el cmd), llegué a la conclusión de que el comando PATH cambia la variable de entorno del sistema Valores de ruta solo para la sesión actual, pero después de reiniciar, todos los valores se restablecen a su valor predeterminado, 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 se manipulen manualmente en la GUI ...).

Pero en aras de la claridad, pensé que compartir aquí el mejor uso de sintaxis SETX que funcionó para mí podría ayudar a alguien algún día:

SETX PATH "%PATH%;C:/path/to/where/the/command/resides"

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 contenga espacios dentro de ella, el signo de división '';'' Hacer el trabajo.

La palabra clave PATH que sigue a SETX define qué conjunto de valores deben cambiarse entre los valores posibles de las Variables del entorno del sistema, y ​​el% PATH% (la palabra PATH rodeado por el signo de porcentaje) dentro de las comillas, indica al sistema operativo que deje el Los valores de PATH tal como son y agregan la siguiente ruta (la que sigue al signo de división '';'') a los valores existentes.

HTH



En esta era de PowerShell, editaría PATH así:

$PATH = [Environment]::GetEnvironmentVariable("PATH") $xampp_path = "C:/xampp/php" [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")

Para establecer la variable para todos los usuarios, en toda la máquina, la última línea debe ser como:

[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")

En una secuencia de comandos de PowerShell, es posible que desee comprobar la presencia de su C:/xampp/php antes de agregarla a PATH (en caso de que se haya agregado anteriormente). Puedes envolverlo en un condicional if .

Así que poniéndolo todo junto:

$PATH = [Environment]::GetEnvironmentVariable("PATH") $xampp_path = "C:/xampp/php" if( $PATH -notlike "*"+$xampp_path+"*" ){ [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine") }


En un indicador de comando, le dice a Cmd que use la línea de comando del Explorador precediéndolo con start .

Así que start Yourbatchname .

Tenga en cuenta que debe registrarse como si su nombre fuera batchfile.exe .

Los programas y los documentos se pueden agregar al registro, por lo que escribir su nombre sin su ruta en el cuadro de diálogo Inicio - Ejecutar o el acceso directo permite a Windows encontrarlos.

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ítalo con tus programas o documentos.

En las rutas, utilice / 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 reg 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 a un valor con nombre.

El archivo no tiene que existir. Esto se puede utilizar para configurar Word.exe para abrir Winword.exe.

Si escribe start batchfile se iniciará iexplore.exe.

REGEDIT4 ;The bolded name below is the name of the document or program, <filename>.<file extension> [HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/App Paths/Batchfile.exe] ;The @ means the path to the file is assigned to the default value for the key. ;The whole path in enclosed in a quotation mark ". @="/"C://Program Files//Internet Explorer//iexplore.exe/"" ;Optional Parameters. The semicolon means don''t process the line. Remove it if you want to put it in the registry ;Informs the shell that the program accepts URLs. ;"useURL"="1" ;Sets the path that a program will use as its'' default directory. This is commented out. ;"Path"="C://Program Files//Microsoft Office//Office//"

Ya te han dicho sobre el camino en otra respuesta. También vea doskey /? para macros de cmd (solo funcionan al escribir).

Puede ejecutar comandos de inicio para CMD. Referencia técnica del Kit de recursos de Windows

AutoRun

HKCU/Software/Microsoft/Command Processor Data type Range Default value REG_SZ list of commands There is no default value for this entry.

Descripción

Contiene comandos que se ejecutan cada vez que inicie Cmd.exe.


Esto solo modifica el registro. Un proceso no utilizará estos valores hasta que se inicie después de este cambio y no herede el entorno de su padre.

No especificó cómo inició la sesión de la consola. La mejor manera de garantizar esto es cerrar sesión y volver a iniciar sesión.


Luego de la fiesta, pero útil si ya está en el directorio que desea agregar a PATH.

set PATH=%PATH%;%CD%

edición: según el comentario: funciona con ventanas estándar cmd pero no en powershell.

Para PowerShell, el %CD% equivalente es [System.Environment]::CurrentDirectory


No necesita ningún comando set o setx , simplemente abra el terminal y escriba:

PATH

Esto muestra el valor actual de la variable PATH. ¿Ahora quieres agregarle un directorio? Simplemente escriba:

PATH %PATH%;C:/xampp/php

Si por alguna razón desea borrar la variable PATH (no hay rutas o eliminar todas las rutas), escriba:

PATH ;

Actualizar

Como señaló Danial Wilson 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 sí lo hace de manera permanente pero NO en la sesión actual, por lo que debe iniciar una nueva línea de comandos para ver los cambios, más información here .

Para verificar si existe una variable ambiental o ver su valor, use el comando ECHO commnad:

echo %YOUR_ENV_VARIABLE%


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, así que puedo escribir:

c:/>mybatchfile -- here all env. are available c:/>php file.php

Puede consultar más detalles sobre este enfoque simple here .


Si ejecuta el comando cmd , actualizará todas las variables del sistema para esa ventana de comando.


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 sistemas que tienen Dot.Net 4.0 o superior, como Windows 7,8 o 10.


  • Los cambios en la línea de comando no serán permanentes, se perderán cuando la consola se cierre.
  • El camino funciona como el primero que primero se sirve.
  • Es posible que desee anular otros ejecutables ya incluidos. Por ejemplo, si ya tiene otra versión en su ruta y desea agregar una versión diferente sin hacer un cambio permanente en la ruta, debe poner el directorio al comienzo del comando.

Para anular los ejecutables ya incluidos;

establece PATH = C: / xampp / php;% PATH%;