为什么%TEMP%会解析为%TEMP \ <digit>?</digit>格式的非确定性路径

时间:2011-06-29 13:18:15

标签: windows windows-server-2008 temp

我有一个Windows Server 2008 32位,当我输入%temp%时,我需要...AppData \ Local \ Temp \ 1 \或..AppData \ Local \ Temp \ 2而不是..应用程序数据\本地\温度

我已经检查了环境变量,它们没问题。

我问的是因为我有一个应用程序应该将文件复制到%temp%\我的应用程序,而是将文件复制到%temp%\ 1 \我的应用程序

有人有解决方案吗?

2 个答案:

答案 0 :(得分:20)

解释,讨论,解决方法等等,都在Old New Thing文章Why does the name of my TEMP directory keep changing下 - 它确保同一用户的多个终端服务会话(默认情况下)不共享临时目录。

  

问题出在Administrative Templates\Windows Components\Terminal Services\Temporary folders组策略中。如果您未选择每个会话不使用临时文件夹,则会创建这些TEMP子目录。还有a knowledge base article describing the registry keys behind these group policies

就个人而言,我发现回复的第一条评论最有用:

  

为什么临时位置会跳转到底是否重要,这是暂时的!

另见

答案 1 :(得分:0)

环境变量具有4个上下文:

(执行Win + R,然后键入regedit来找到下面的路径)

  1. 系统变量(HKLM\System\CurrentControlSet\Control\Session Manager\Environment
  2. 用户变量(HKCU\Environment
  3. 过程变量(未存储在注册表中)
  4. 易失性变量(HKCU\VolatileEnvironment

ref:https://rakhesh.com/windows/temp-environment-variable-has-a-2-or-other-number-after-it/

当未配置组策略Do not use temporary folders per session或未将其设置为Enabled时,系统将生成两个Volatile Environment变量TEMPTMP,它们的值与当前相同用户的TEMP变量,并在TEMP文件夹的末尾添加一个增量数字(每次用户登录时增量,请查看@Damien的答案以获取详细信息)

如果将组策略Do not use temporary folders per session设置为启用,则不会发生此行为。