2012-01-07 9 views
8

En Windows/cygwin, quiero poder guardar la variable PATH para archivar en una máquina y cargarla en la otra máquina;cómo configurar la variable de entorno desde el contenido del archivo?

para almacenar la variable que estoy haciendo:

echo %PATH% > dat 

sin embargo, no está seguro de cómo cargar más tarde.

set PATH=??????? 

Gracias Rami

+6

sólo tiene que utilizar: 'set/P PATH = Aacini

+2

publique su comentario como respuesta y yo lo votaría. –

Respuesta

3

Ser dependiente de Cygwin, cómo la forma de poner el comando en el archivo guardado, por ejemplo:

echo "export PATH=$PATH" > dat 

Entonces abastecimiento de la secuencia de comandos más adelante para establecer la ruta:

. ./dat 

Tenga en cuenta que "sourcing" del script (en lugar de solo ejecutarlo) es necesario para que modifique su entorno actual, y no solo los entornos secundarios nuevos.

+0

en windows, finalmente tuve que hacer 'echo set PATH =% PATH%> dat.bat'; gracias – sramij

5

echo %PATH% se producirá un error si la ruta contiene un sin comillas & o^(esto no es probable, pero ciertamente posible)

Una solución más fiable es utilizar:

setlocal enableDelayedExpansion 
echo !path!>dat 

continuación, puede utilizar Aacini de método sugerido de leer el valor de vuelta en

set /p "PATH=" <dat 
11

Sólo tiene que utilizar: set /P PATH=< dat

Debe tener en cuenta que echo %PATH% > dat inserta un espacio adicional después del valor% PATH%; ese espacio puede causar problemas si luego se agrega una ruta adicional a la variable PATH. Simplemente elimine el espacio extra de esta manera: echo %PATH%> dat.

+1

Para mí esto solo funciona para los primeros 1024 caracteres del archivo. Lo siento, me perdí el hecho de que esto estaba en cygwin. Tal vez funciona mejor bajo cygwin. –

+0

@RussellGallop, ¿encontró una solución para esta limitación? – xverges

+0

'set/P' solo puede leer 1024 caracteres. Para leer más, use 'for/F' como se muestra en la respuesta de SpaceMonkey a continuación. – Aacini

1

Esto podría ser malo pero en Windows estoy usando esto:

for /F %%g in (dat) do set PATH=%%g 

y esto para escribir el archivo porque tenía problemas con espacios

echo>dat %PATH% 
Cuestiones relacionadas