拥有这两个环境变量 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\TEMP
echo %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 中,微软的默认值是相同的,请参阅文档