2012-05-01 9 views
14

Sé que en el mundo de Unix, si edita su archivo .profile o .cshrc, puede hacer una fuente ~/.profile o fuente ~/.cshrc para obtener el efecto en su sesión actual. Si cambié algo en la variable del sistema en Windows, ¿cómo puedo hacer que tenga efecto en la sesión del símbolo del sistema actual sin salir de la sesión del símbolo del sistema y abrir otra sesión del símbolo del sistema?¿Hay un comando fuente equivalente en Windows CMD como en bash o tcsh?

Respuesta

4

Me temo que no, pero puede comenzar a usar Powershell, que sí es compatible con el suministro de puntos. Como la ventana de PowerShell está realmente basada en cmd, todos tus comandos dos seguirán funcionando y obtendrás una nueva potencia, mucha más potencia.

+0

Gracias John Shen. He buscado en la web y no he encontrado ningún equivalente. He visto Powershell, quizás empiece a usar eso en lugar del antiguo símbolo del sistema. – mart2001

+5

No se pudo obtener Powershell para hacer esto –

8

El dos shell admite archivos .bat que solo tienen asignaciones a variables que, cuando se ejecuten, crearán las variables en el entorno actual.

c:> type EnvSetTest.bat 
    set TESTXYZ=XYZ 

    c:> .\EnvSetTest.bat 

    c:> set | find "TESTX" 
    TESTXYZ=XYZ 
    c:> 

IHTH.

+0

Hit -1 accidentalmente ayer, sry. Veré si un mod puede arreglarlo – thomasa88

+0

Parece que no puedo votar hasta que se edite la publicación. ¿Te importa hacer una edición menor? – thomasa88

+0

tnx, no me importa que me devuelvan las cartas si aprendo algo, pero antes no había ningún comentario instructivo. Nuevamente gracias por arreglar esto. Buena suerte a todos. – shellter

23

En el símbolo del sistema de Windows habitual (es decir, CMD), simplemente usando call mybat.bat hice lo que quería. Obtuve todas las variables de entorno que había establecido.

+2

no funciona si mybat.bat llama a otros archivos bat. –

+0

Si mybat.bat ejecuta otros scripts por lotes, debe 'invocarlos' para permitir que la ejecución vuelva al script actual. – eryksun

1

La única forma en que he encontrado que esto funciona es abrir una nueva ventana de cmd desde mi propia ventana de configuración. por ejemplo:

@echo off 
echo Loading... 
setlocal enabledelayedexpansion 
call 1.cmd 
call 2.bat 
... 
... 
if "%LocalAppData%"=="" set LocalAppData=%UserProfile%\Local Settings\Application Data 
SET BLAHNAME=FILE:%LocalAppData%\BLAH 
call blah blah 
cmd 

La última cmd pondrá en marcha una nueva línea de cmd con los ajustes deseados exportados a la ventana de comandos.

-1

Por ejemplo, para establecer VC# vars

C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" 
Cuestiones relacionadas