Aquí hay algo de VBScript que uso para esto:
set args = WScript.Arguments
Set objShell = WScript.CreateObject("WScript.Shell")
Set colSystemEnvVars = objShell.Environment("System")
Set colUserEnvVars = objShell.Environment("User")
' Parse args
select case args.Count
case 0, 1, 2
help
case 3
sVariable = args(0)
sValue = args(1)
sScope = UCase(args(2))
sMode = ""
case 4
sVariable = args(0)
sValue = args(1)
sScope = UCase(args(2))
sMode = UCase(args(3))
end select
select case sScope
case "S"
if sMode = "A" then
sValue = colSystemEnvVars(sVariable) & sValue
end if
colSystemEnvVars(sVariable) = sValue
case "U"
if sMode = "A" then
sValue = colUserEnvVars(sVariable) & sValue
end if
colUserEnvVars(sVariable) = sValue
case else
help
end select
WScript.Quit
'******************************************************************************
Sub help()
WScript.Echo ""
WScript.Echo "Create or update an environment variable."
WScript.Echo ""
WScript.Echo "usage:"
WScript.Echo "======"
WScript.Echo "cscript SetVar.vbs variable value {S|U} [A]"
WScript.Echo ""
WScript.Echo "eg:"
WScript.Echo "==="
WScript.Echo "cscript SetVar.vbs MYVAR 'Hello world' U"
WScript.Echo "cscript SetVar.vbs PATH 'C:\MyPath' S A"
WScript.Quit
End Sub
El alcance puede ser 'S'ystem o' U'ser . El último argumento, 'A', si está presente, agrega el valor al valor existente de la variable (útil para agregar un directorio a la variable del sistema PATH).
Las variables se mantendrán, pero tendrá que cerrarlas y luego volver a abrir una consola para usarlas. Normalmente ejecuto esto desde el diálogo "Ejecutar ...", luego abro una consola.
Aunque estoy de acuerdo en que su pregunta puede ser de interés para los programadores, todavía no creo que esté relacionada con la programación. Es una pregunta de sistema operativo no una pregunta de programación. Es completamente posible que alguien no esté de acuerdo conmigo y vuelva a abrir la pregunta. – EBGreen
infierno sí, esto es "programación relacionada" o no sabes lo que significa SDK? – Kevin
No estoy de acuerdo con programación no relacionada. Vea la respuesta de Patrick que ha escrito un programa para resolver el problema. Y en realidad no hay una funcionalidad integrada del sistema operativo Windows para resolverlo ;-) –