TEMP 环境变量值来自哪里?

TEMP 环境变量值来自哪里?

我试图了解为什么我看到的TEMP环境变量值不同。

它在环境变量窗口中的样子如下:

在此处输入图片描述

这是我在 cmd 中回显它时得到的结果 - 请注意3最后的部分:

在此处输入图片描述

为什么两者 (window 与 cmd) 之间有区别,我如何才能到达后者定义的地方并改变它?

这与关闭然后打开 cmd 无关;回显的值仍然存在。

注意:我在我的机器上拥有管理员权限,并且FWIW,我在Windows Server 2019上。

答案1

在 Windows 台式电脑(例如 Windows 10)上评估此变量可能不会在末尾产生数字,而在远程桌面服务器或任何 Windows 服务器上执行相同操作时,您将看到出现数字(示例中为 3)。

事实证明,可以在多个地方设置这些变量:

  • 系统级别-服务器/PC默认
  • 用户级别 - 为用户覆盖上述内容
  • 进程级别 - 为单个进程覆盖上述内容(在 Linux 中更常见,但显然在 Windows 中也可以)

不太为人所知的是“易失性变量”,它在注册表“HKCU\VolatileEnvironment”中配置。这似乎会导致附加一个与您的会话编号相关的数字,但令人惊讶的是,它与任务管理器中您帐户的会话编号不同。这个想法显然是为了让您可以在单个主机上进行多个会话而不会发生临时位置冲突。您可以使用此组策略设置关闭此动态临时文件夹设置:

  • Windows 组件/远程桌面服务/远程桌面会话主机/临时文件夹

此信息归功于Rakhesh.com

答案2

您在系统属性窗口和注册表中看到的内容实际上并不是环境变量,它们是用于创建每个进程环境的模板,这些环境仅存在于内存中。命令提示符将显示 cmd.exe 进程的特定实例中当前存在的内容,这些内容可能与其他进程或注册表中的内容相符,也可能不相符。显然,某些东西正在或已经修改了您正在显示的命令提示符进程的环境变量。

相关内容