Comando para reiniciar o comando em si (no Windows 7)?

1

Sempre que altero a variável de ambiente (no Windows 7), preciso sair e iniciar o prompt de comando. Isso é necessário ou as alterações não são refletidas.
Existe algum comando (ou método simples) para reiniciar o prompt de comando no mesmo local?

Atualização: a solução original de techie007 start cmd && exit respondeu ao que minha pergunta significava. Mas isso não resolveu o meu problema. Parece que não há um método simples. Eu tentei os scripts fornecidos no Stack Overflow. Os scripts funcionaram para mim, então eu marquei a resposta de techie007 como aceita.

    
por Serious 10.02.2012 / 14:52

2 respostas

2

C:\> start cmd deve fazer o truque para abrir uma nova janela de prompt de comando na pasta atual.

Você também pode usar C:\> start cmd && exit para abrir um novo prompt do CMD e, em seguida, fechar a janela da qual você o iniciou, se ele conseguir abri-lo com êxito.

Use apenas um & para fechar a janela de lançamento, independentemente do sucesso.

edite: Agora que o grawity foi bom o suficiente para mostrar que eu não compreendi ...:)

Não há (intencionalmente) nenhuma maneira inerente de fazer isso no Windows.

Essa pergunta também foi feita no Stack Overflow e há algumas boas explicações e uma possível solução baseada em script por aí:

Is Existe um comando para atualizar variáveis de ambiente a partir do prompt de comando no Windows?

    
por 10.02.2012 / 15:11
4

Na verdade, você não está definindo nenhuma variável de ambiente de qualquer forma quando modifica o registro por meio de Meu computador.

As variáveis de ambiente não são mantidas no registro. O que é mantido no registro é um modelo , do qual programas como o Windows Explorer (re-) constroem suas variáveis de ambiente quando são notificados para fazer isso. As variáveis de ambiente reais são por processo e são armazenadas no próprio espaço de endereço de cada processo, inicialmente herdado de seu processo pai e modificável posteriormente no capricho do processo. Os programas como o Windows Explorer participam de um protocolo voluntário, pelo qual eles relerão o modelo e atualizarão seu próprio ambiente por processo sempre que houver um http://msdn.microsoft.com /pt-pt/library/ms725497(VS.85).aspx "title=" WM_SETTINGCHANGE Message "> uma mensagem do Windows é transmitida para todas as janelas (de nível superior) num ambiente de trabalho.

Muitos programas Win32 não participam deste protocolo voluntário . O interpretador de comandos da Microsoft é um desses programas. Para modificar uma variável de ambiente em um processo do interpretador de comandos da Microsoft em execução, são usados os comandos do interpretador de comandos ordinários para modificar variáveis de ambiente, como SET , DPATH e PATH . O ambiente modificado será herdado por todo processo que o interpretador de comandos gerar.

Da mesma forma, o ambiente modificado em um processo do Windows Explorer é herdado apenas por processos que são gerados pelo Windows Explorer após receber a mensagem e reler o modelo. As variáveis de ambiente de um processo que já está em execução não são afetadas por modificações feitas por outros processos para as variáveis de ambiente suas próprias . Um interpretador de comandos já em execução da Microsoft não obterá magicamente um ambiente alterado do processo do Windows Explorer que o gerou antes da alteração. Além disso, os netos do Windows Explorer somente herdam de seus pais, o interpretador de comandos, e portanto não herdam nenhuma alteração de ambiente que o Windows Explorer tenha feito em seu próprio ambiente.

Outros interpretadores de comandos são diferentes. , por exemplo, participa do protocolo voluntário. Ele reconhecerá a mensagem do Windows e atualizará seu próprio ambiente por processo a partir do modelo no registro, quando seu " Atualizar ambiente na alteração do sistema " está ativada.

    
por 10.02.2012 / 22:17