環境変数のTEMPとTMP


20

これらの2つの環境変数TEMPおよびTMPを使用するのは正しいですか?一方に変更を加えた場合、もう一方にも同じ変更を加える必要がありますか?たとえば、cygwinをインストールしていて、PATH変数を変更するように指示されましたが、TEMPとTMPの両方にパス変数があります。2つの違いは何ですか?

環境変数のスクリーンショット

なぜ人々がこれを見たいのか定かではありませんが、ここにパスの値があります: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


タンでPath変数がどこで私はあなたのスクリーンショットでそれを見ることができない
user151019

@Mark何が問題なの?
セレリタス14

@DavidMarshall何が問題なの?
セレリタス14

私の質問は、パス変数を変更する方法ではありません。そして、もしそれがあなたの仲間だったら、答えは間違っているでしょう、なぜなら私の変数は、変数を変更するとき、TEMP、TMP、またはその両方に行われるべきだからです。そして、あなたは指定しません。
セレリタス14

3
この記事をご覧ください。なぜTMPとTEMPの両方の環境変数があり、どちらが正しいのですか?これによれば、TMPGetTempFileName機能のために)好むものかもしれません
...-aschipfl

回答:


10

具体的に質問に答えるには:

2つの違いは何ですか?

違いはありません。それらは同じパスに対する異なるエイリアスです。Markが述べたように、いくつかのプログラムは%TMP%他のプログラムを使用します%TEMP%。Windowsはデフォルトで両方を同じパスに割り当てて、異なるプログラム間の一貫性を確保し、さらに同じプログラムで両方を使用するなどの開発者エラーから保護します。

また、ご注意%Path%変数はどちらかとは何の関係もありません%TMP%かを%TEMP%%Path%はシステム変数ですが、%TMP%and %TEMP%はシステム変数であると同時にユーザー変数でもあります。システムのバージョンはにリンクしていC:\windows\TEMPます。簡単なテストで明らかなように、「システム」ユーザーのみがこれらの変数を実際に使用できます。cmdウィンドウを開いてecho %TMP%またはを入力するecho %TEMP%と、ユーザーバージョンの変数で定義されたパスが返されます。ただし、%Path%ユーザーバージョンがないため(デフォルト)、実行できecho %Path%、システム変数の値を返します。

プログラムが「Path」システム変数をどのように使用するのかは完全にはわかりませんが、これはおそらくcygwinが参照しているものですが、とにかく、TMPやTEMPとは無関係であることを保証できます。

それがあなたの質問に答えることを願っています。

編集:%Path%目的を思い出しました—ファイルへのフルパスを使用する必要なく、変数で指定されたパスのいずれかにあるファイルにアクセスできます。たとえば、「C:\ MYPROG \ binに」を加える%にすると、パス%はあなただけで入力できるようになるmyprogmyprog --helpのように、完全なパスを入力せずに、コマンドラインになど"C:\myprog\bin\myprog.exe" --help。もちろん、コマンドラインの使用は単なる例であり、フルパスを必要とせずに、あらゆるプログラムまたはインターフェイスがあらゆる種類のファイルにアクセスできるようにします。


彼らはあなたの両方が必要なのですので、いくつかのプログラムは、他のものを使用して、いくつかの異なっている
user151019

面白い。時々アクセスが拒否されるため、ディレクトリを圧縮できません。TEMPとTMPを変更し%USERPROFILE%\AppData\Local\Tempて問題の1つを修正しましたが、さらに多くの問題が発生しました。に変更しましたC:\Windows\Temp。ユーザーバージョンがある場合、システムはを使用できますがC:\Windows\Temp、私は使用でき%USERPROFILE%\AppData\Local\Temp、誰もが満足しています。試してみます。ありがとう!
inf3rno

3

異なるプログラムが異なるプログラムを使用するため、両方が必要です。

非常にひどく書かれたプログラムだけが同じものを指していると仮定して両方を使用するため、同じ場所に設定する必要はありません。

/ tmpは、環境変数TMPDIRを使用するUnixの一時ファイルの共通ディレクトリです

メモリから(80年代半ばにこれを使用したとき)TEMPはDOSで使用されていたオリジナルのもので、TMPはUnixから/ tmpに一致するように移植されたプログラムで使用される傾向がありました。しかし、異なる開発者が異なるものを使用する制御がなかったため、プログラムがDOSで記述されたとき。最新のWindowsでは、Microsoftのデフォルトは両方とも同じです。このドキュメントを参照してください。


2
実際、標準のSUS変数はTMPDIRです。標準では、どちらかの言及がないTMPか、TEMPDOSの世界で生まれ、どちらもが、。
JdeBP 14

@ J、SUSは????
パセリエ

1
少し遅れましたが、単一UNIX仕様。
ティムディギンズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.