Qual é a diferença entre% Windir% e% Systemroot% no local do caminho do Windows?
Ambos mostram o local da pasta "Windows".
Para expandir a resposta do Sr. Dave, %SystemRoot%
é um built-in variável (junto com um pequeno punhado de outros gostam %SystemDrive%
). Ou seja, ele não está realmente definido no armazenamento de variável de ambiente HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
no registro.
Por outro lado, %windir%
é uma variável regular e é definida no armazenamento de variáveis como %SystemRoot%
. (Não há contrapartida da “variável real” para %SystemDrive%
.)
Qual usar realmente não importa, mas você pode ter problemas com a expansão variável em arquivos em lote; nesse caso, você pode tentar o outro. (Não me lembro de ter problemas com isso especificamente, mas vale a pena lembrar.)
Além disso, %SystemRoot%
(e %SystemDrive%
) são definidos durante o processo de instalação (quando você escolhe a unidade de destino) e, portanto, estão disponíveis desde o primeiro momento em que o Windows está sendo instalado, enquanto %windir%
são definidos em um momento posterior durante a instalação, portanto, se você estiver criando alguns tipo de instalação personalizada (por exemplo, OEM, PE, etc.), você desejará usar %SystemRoot%
.
%SystemRoot%
. O Windows possui informações suficientes para definirSystemDrive
eSystemRoot
assim que você escolher a unidade onde instalá-la (além disso, usará o padrão se você não modificar o destino). Ele define várias variáveis de ambiente padrão (incluindowindir
) posteriormente na instalação quando inicializa o registro. Isso só importa se você estiver modificando o processo de instalação.%windir%
. Isso está correto?No Win 7,
%SystemRoot%
é uma variável do sistema somente leitura enquanto%windir%
pode ser alterada e é definida por padrão comowindir=%SystemRoot%
. O sistema operacional depende%SystemRoot%
. Segundo a Wikipedia ,%WinDir%
antecede o Windows NT e parece ser substituído por%SystemRoot%
.fonte
fato divertido - (no Windows 10 1809)% windir% ainda é tão essencial que você não pode executar nada elevado sem ele ... o que significa que NÃO É POSSÍVEL RETIRAR DE VOLTA, pois o registro da variável de ambiente aparentemente requer elevação :( ... felizmente, o modo de segurança me permitiu restaurar essa variável e continuar andando
fonte