Establecer múltiples variables de entorno en un shell generado a través de un script por lotes de Windows

6

Tengo un archivo por lotes que genera un shell con una ruta modificada con el siguiente comando:

cmd /K set PATH=%PATH%;<additional path locations>

También quiero establecer variables de entorno adicionales para el shell generado. ¿Hay alguna forma de hacer eso?

cuantícula
fuente

Respuestas:

2

Simplemente agregue otra variable en una nueva línea usando setcomo se muestra en su ejemplo. También querrá eliminar el modificador / K de la primera línea ya que la ejecución se detendrá después de esa línea.

set NEWVAR=SOMETHING

creará una nueva variable llamada NEWVARcon el valor SOMETHING. Si desea mantener el mismo comportamiento y mantenerse cmdabierto con el modificador / K, simplemente colóquelo al final.

ejemplo:

set PATH=%PATH%;C:\Folder;
set NEWVAR=SOMETHING
echo %NEWVAR%
John T
fuente
1
Gracias, eso funcionó como yo quería. Puse cmd / K al final porque quería usar el shell después de que hubiera terminado de ejecutar mis comandos.
Quanticle
2
También puede escribir un lote que realice todos los cambios necesarios en el entorno y luego simplemente inicie su cmdinstancia con cmd /k setvars.cmd. Así es, por ejemplo, cómo Visual Studio configura su símbolo del sistema.
Joey
1

También puede combinarlos en una sola línea de la siguiente manera:

set A=foo & B=bar & C=baz

De esta manera, podría evitar tener que modificar el script original y ejecutarlo de la siguiente manera:

set A=foo & B=bar & C=baz & c:\path\to\foo.bat

Matthew Fellows
fuente
Al ejecutar esto desde un npm/ yarnscript, tuve que prefijar cada asignación de variable con set. egset A=foo & set B=bar & set C=baz & c:\path\...
Greg K