Eu precisava adicionar uma nova entrada à minha variável PATH. Essa é uma atividade comum para mim no meu trabalho, mas recentemente comecei a usar o Windows 8. Presumi que o processo seria semelhante ao Windows 7, Vista, XP ...
Aqui está a minha sequência de eventos:
- Abra Propriedades do sistema (Iniciar-> [tipo "Painel de controle"] -> Painel de controle \ Sistema e segurança \ Sistema -> Configurações avançadas do sistema -> Variáveis de ambiente)
- Adicione o novo caminho ao início da minha variável USER PATH (C: \ dev \ Java \ apache-ant-1.8.4 \ bin;)
- Abriu um prompt de comando (Iniciar -> [digite "prompt de comando" digite] -> [digite "caminho" digite]
Minha nova entrada de caminho não está disponível (consulte a imagem e o vídeo em anexo). Dupliquei exatamente o mesmo processo em uma máquina Windows 7 e funcionou.
EDITAR
Vídeo sobre variáveis de ambiente e prompt de comando do Windows 8
EDITAR
Definitivamente, esse não é o comportamento do Windows 7. Assista a este vídeo para ver o comportamento que espero trabalhar no Windows 7. http://youtu.be/95JXY5X0fII
EDIT 31/05/2013
Então, depois de muita frustração, escrevi um pequeno aplicativo C # para testar o WM_SETTINGCHANGE
evento. Esse código recebe o evento no Windows 7 e no Windows 8. No entanto, no Windows 8 do meu sistema, não obtenho o caminho correto; mas eu faço no Windows 7. Isso não pôde ser reproduzido em outros sistemas Windows 8.
Aqui está o código C #.
using System;
using Microsoft.Win32;
public sealed class App
{
static void Main()
{
SystemEvents.UserPreferenceChanging += new UserPreferenceChangingEventHandler(OnUserPreferenceChanging);
Console.WriteLine("Waiting for system events.");
Console.WriteLine("Press <Enter> to exit.");
Console.ReadLine();
}
static void OnUserPreferenceChanging(object sender, UserPreferenceChangingEventArgs e)
{
Console.WriteLine("The user preference is changing. Category={0}", e.Category);
Console.WriteLine("path={0}", System.Environment.GetEnvironmentVariable("PATH"));
}
}
OnUserPreferenceChanging
é equivalente a WM_SETTINGCHANGE
Programa C # em execução no Windows 7 (você pode ver o evento acontecer e ele escolhe o caminho correto).
Programa C # em execução no Windows 8 (você pode ver o evento acontecer, mas o caminho errado).
Há algo no meu ambiente que está precipitando esse problema. No entanto, isso é um bug do Windows 8?
EDIT 2014-04-28
Devido a esse e vários outros problemas, não usamos mais o Windows 8 na área de trabalho. Não temos um ambiente para continuar testando e experimentando esse problema. Ainda não há resposta ou solução para esse problema. As respostas abaixo não resolveram o nosso problema.
cmd
quando uma nova instância foi lançada. É claro que o já em execução cmd
não recebeu o ambiente atualizado.