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

sha*_*rsa 14 windows temp windows-server-2008

我有一个Windows Server 2008 32位,当我输入%temp%时,我需要..AppData\Local\Temp\1 \或..AppData\Local\Temp\2而不是..AppData\Local\Temp

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

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

有人有解决方案吗?

Dam*_*ver 22

解释,讨论,解决方法等等都在Old New Thing文章下为什么我的TEMP目录的名称不断变化 - 它确保同一用户的多个终端服务会话(默认情况下)不共享临时目录.

问题出在管理模板\ Windows组件\终端服务\临时文件夹组策略中.如果未选择"不在每个会话中使用临时文件夹",则会创建这些TEMP子目录.还有一篇知识库文章描述了这些组策略背后的注册表项.

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

为什么温度位置无论如何都要跳,这是暂时的!

也可以看看

  • 如果它发生变化,为什么重要?因为有时两个程序必须通过TEMP目录中的文件进行会合.无法预测价值会使其变得更难. (2认同)
  • @ e40 - 如果两个程序在*same*会话中运行,它们将观察到相同的值.如果两个程序在*不同的*会话中运行,那么它们之间的任何交互都可能是一个错误. (2认同)
  • 我遇到了一个案例,我最终得到了一个/ 2临时文件夹,但不知何故Windows没有创建该文件夹.所以一堆东西开始失败.有些应用程序 - 比如Process Explorer甚至不会运行,因为它从temp文件夹中提取并运行. (2认同)