环境变量中的 TEMP 与 TMP

Cel*_*tas 25 windows windows-7 environment-variables

有这两个环境变量 TEMP 和 TMP 对吗?如果我对一个进行更改,我是否应该对另一个进行相同的更改?例如,我正在安装 cygwin 并且方向告诉我更改 PATH 变量,但是 TEMP 和 TMP 都有路径变量。两者有什么区别?

环境变量的屏幕截图

不知道为什么人们想要看到这个,但这里是路径的值: TEMP 中的路径:C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\ Windows Live;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\ Binn\;C:\Program Files (x86)\Windows Live\Shared

TMP 中的路径:%USERPROFILE%\AppData\Local\Temp

Rya*_*ayR 12

具体回答这个问题:

两者有什么区别?

没有区别。它们只是同一路径的不同别名。正如马克所说,有些程序%TMP%使用%TEMP%. Windows 默认将两者分配到同一路径以确保不同程序之间的一致性,甚至可以防止开发人员错误,例如在同一程序中使用两者。

另请注意,该%Path%变量与%TMP%或无关%TEMP%%Path%是系统变量,而%TMP%%TEMP%既是系统变量又是用户变量。系统版本链接到C:\windows\TEMP. AFAIK,只有“系统”用户才能实际使用这些变量,正如一个简单的测试所证明的那样;打开一个 cmd 窗口并输入echo %TMP%or echo %TEMP%,它返回在变量的用户版本中定义的路径。但是,由于%Path%没有用户版本(默认情况下),您可以这样做echo %Path%并返回系统变量的值。

我不完全确定程序如何使用“路径”系统变量,这可能是 cygwin 所指的,但无论如何,我可以向你保证它与 TMP 或 TEMP 无关。

希望这能回答你的问题。

编辑:我只记得是什么%Path%- 它允许您访问变量中指定的任何路径中的任何文件,而无需使用文件的完整路径。例如,将 "C:\myprog\bin" 添加到 %Path% 将使您只需在命令行中输入myprogmyprog --help等,而无需输入完整路径,如"C:\myprog\bin\myprog.exe" --help. 当然命令行使用只是一个例子,它允许任何程序或界面访问任何类型的文件而无需完整路径。


mmm*_*mmm 4

您确实需要两者,因为不同的程序使用不同的程序。

它们不需要设置到同一个地方,因为只有编写得非常糟糕的程序才会在假设它们指向同一事物的情况下使用两者。

/tmp 是 Unix 中临时文件的公共目录,也使用环境变量 TMPDIR

根据记忆(当我在 80 年代中期使用它时),TEMP 是 DOS 中使用的原始文件,而 TMP 往往由从 Unix 移植来匹配 /tmp 的程序使用。然而,当程序在 DOS 中编写时,由于没有控制权,不同的开发人员使用不同的程序。在现代 Windows 中,微软的默认设置是相同的,请参阅此文档

  • 实际上,标准的SUS变量是[`TMPDIR`](http://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap08.html#tag_08_03)。该标准没有提及“TMP”或“TEMP”,这两者都起源于 DOS 世界。 (3认同)
  • 现在有点晚了,但是:单一 UNIX 规范。 (3认同)