环境变量中的 TEMP 与 TMP

环境变量中的 TEMP 与 TMP

拥有这两个环境变量 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

答案1

具体回答这个问题:

两者有什么区别?

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

还要注意,变量与或%Path%都无关。是系统变量,而和既是系统变量又是用户变量。系统版本链接到。据我所知,只有“系统”用户才能实际使用这些变量,这可以通过一个简单的测试来证明;打开一个 cmd 窗口并输入或,它会返回变量的用户版本中定义的路径。但是由于没有用户版本(默认情况下),您可以执行此操作并返回系统变量的值。%TMP%%TEMP%%Path%%TMP%%TEMP%C:\windows\TEMPecho %TMP%echo %TEMP%%Path%echo %Path%

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

希望这能回答你的问题。

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

答案2

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

它们不需要被设置在同一个位置,因为只有编写得很差的程序才会使用它们,假设它们指向同一个东西。

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

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

相关内容