Ortam Değişkenlerinde TEMP ve TMP


20

Bu iki ortam değişkenine TEMP ve TMP sahip olmak doğru mudur? Birinde değişiklik yaparsam, diğerinde de aynı değişiklikleri yapmalıyım? Örneğin cygwin'i kuruyordum ve talimatlar PATH değişkenini değiştirmemi söyledi, ancak hem TEMP hem de TMP'de yol değişkeni var. İkisi arasındaki fark nedir?

ortam değişkenlerinin ekran görüntüsü

İnsanların bunu neden görmek istediğinden emin değilim ama yolun değerleri şöyledir: TEMP yolu: C: \ Program Files \ Common Files \ Microsoft Shared \ Windows Live; C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ Windows Live; C: \ Program Dosyaları (x86) \ NVIDIA Corporation \ PhysX \ Common;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Dosyaları (x86) \ Ortak Dosyalar \ Acronis \ SnapAPI \; C: \ Program Dosyaları (x86) \ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C: \ Program Dosyaları \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Program Dosyaları (x86) \ Windows Live \ Shared

TMP'deki yol:% USERPROFILE% \ AppData \ Local \ Temp



@ Mark ne önemi var?
Celeritas

@DavidMarshall ne önemi var?
Celeritas

Sorum yol değişkeninin nasıl değiştirileceği değil. Ve eğer sizin adamlarınız olsaydı, cevaplar yanlış olurdu çünkü benim açımdan, herhangi bir değişkeni değiştirirken TEMP, TMP veya her ikisine de yapılmalıdır. Ve siz belirtmiyorsunuz.
Celeritas

3
Bu makaleye göz atın Neden hem TMP hem de TEMP ortam değişkenleri var ve hangisi doğru? Buna göre, TMPtercih edilen kişi olabilir ( GetTempFileNameişlev nedeniyle ) ...
aschipfl

Yanıtlar:


10

Soruyu özellikle cevaplamak için:

İkisi arasındaki fark nedir?

Fark yok. Aynı yol için sadece farklı takma adlardır. Mark'ın belirttiği gibi, bazı programlar %TMP%diğerlerini kullanırken %TEMP%. Windows, farklı programlar arasında tutarlılık sağlamak için her ikisini de varsayılan olarak aynı yola atar ve hatta her ikisini de aynı programda kullanmak gibi geliştirici hatalarına karşı korur.

Ayrıca %Path%değişkenin %TMP%veya ile ilgisi olmadığını unutmayın %TEMP%. %Path%sırasında bir sistem değişken olup, %TMP%ve %TEMP%ayrıca bir kullanıcı değişken olarak, her iki sistem değişkenleri bulunmaktadır. Sistem sürümleri bağlanır C:\windows\TEMP. AFAIK, sadece "Sistem" kullanıcısı basit bir testin kanıtladığı gibi aslında bu değişkenleri kullanabilir; bir cmd penceresi açın ve echo %TMP%veya yazın echo %TEMP%ve değişkenlerin kullanıcı sürümünde tanımlanan yolu döndürür. Ancak %Path%kullanıcı sürümü olmadığından (varsayılan olarak) yapabilirsiniz echo %Path%ve sistem değişkeninin değerini döndürür.

Programların "Yol" sistem değişkenini nasıl kullandığından tamamen emin değilim, ki bu muhtemelen cygwin'in bahsettiği şeydir, ancak ne olursa olsun, TMP veya TEMP ile ilgisi olmadığını garanti edebilirim.

Umarım sorunuzu cevaplar.

DÜZENLEME: Sadece ne için %Path%olduğunu hatırladım - dosyanın tam yolunu kullanmanıza gerek kalmadan değişkende belirtilen yollardan herhangi birinde bulunan dosyalara erişmenizi sağlar. Örneğin,% Path% klasörüne "C: \ myprog \ bin" eklendiğinde , komut satırına tam yolunu yazmak zorunda kalmadan yalnızca etc myprogveya myprog --helpetc yazabilirsiniz "C:\myprog\bin\myprog.exe" --help. Elbette komut satırı kullanımı sadece bir örnektir, herhangi bir programın veya arabirimin tam yola ihtiyaç duymadan her türlü dosyaya erişmesini sağlar.


Bazı programların birini ve bazılarını farklı kullandıkları için her ikisine de ihtiyacınız var
user151019

İlginç. Dizinleri sıkıştıramıyorum, çünkü bazen erişimim reddedildi. TEMP ve TMP'yi değiştirmek %USERPROFILE%\AppData\Local\Tempsorunlarımdan birini düzeltti, ancak çok daha fazlasını üretti. Tekrar olarak değiştirdim C:\Windows\Temp. Bir kullanıcı sürümü varsa, C:\Windows\Tempben kullanabilirim %USERPROFILE%\AppData\Local\Tempve herkes mutluyken , sistem kullanabilir . Bir deneyeceğim. Teşekkürler!
inf3rno

3

Farklı programlar farklı programlar kullandığından ikisine de ihtiyacınız vardır.

Sadece çok kötü yazılmış programların her ikisini de aynı şeye işaret ettiklerini varsayarak kullanacakları için aynı yere ayarlanmaları gerekmez.

/ tmp, Unix'teki geçici dosyalar için TMPDIR ortam değişkenini kullanan ortak bir dizindir

Bellekten (bunu 80'lerin ortasında kullandığımda) TEMP, DOS ve TMP'de kullanılan orijinal koddu ve / tmp ile eşleşmek için Unix'ten taşınan programlar tarafından kullanılma eğilimindeydi. Bununla birlikte, programlar bir kontrol olmadığı için DOS'ta yazıldığında, farklı geliştiriciler farklı olanları kullandı. Her iki görüyoruz modern, Windows Microsoft'un varsayılan olarak aynıdır doc


2
Aslında, standart SUS değişkeni TMPDIR. Standardın hiçbiri ya TMPda TEMPher ikisi de DOS dünyasından kaynaklanmıyor.
JdeBP

@J, SUS ????
Pacerier

1
Şimdi biraz geç ama: Tek UNIX Özelliği.
Tim Diggins
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.