TEMP проти TMP в змінних середовища


21

Чи правильно мати ці дві змінні середовища TEMP і TMP? Якщо я вносити зміни до одного, чи слід вносити ті ж зміни до іншого? Наприклад, я встановлював cygwin, і вказівки сказали мені змінити змінну PATH, але і TEMP, і TMP мають змінну шляху. Яка різниця між ними?

знімок екрана змінних середовища

Не впевнені, чому люди хочуть бачити це, але ось значення до шляху: Шлях до TEMP: C: \ програмні файли \ загальні файли \ спільний Microsoft \ Windows Live; C: \ програмні файли (x86) \ загальні файли \ Microsoft спільний \ Windows Live; C: \ програмні файли (x86) \ NVIDIA Corporation \ PhysX \ Common;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Програмні файли (x86) \ Загальні файли \ Acronis \ SnapAPI \; C: \ Програмні файли (x86) \ Набори Windows \ 8.1 \ Інструментарій продуктивності Windows \; C: \ Програмні файли \ Microsoft SQL Server \ 110 \ Інструменти \ Binn \; C: \ Програмні файли (x86) \ Windows Live \ Shared

Шлях в TMP:% USERPROFILE% \ AppData \ Local \ Temp


Де змінна Шлях у темпах, я не бачу її на екрані екрана
user151019

@ Марк, що це має значення?
Celeritas

@DavidMarshall що це має значення?
Селерітас

Моє питання не в тому, як змінити змінну шляху. І якби це були ваші хлопці, відповіді були б невірними, оскільки мій погляд, при зміні будь-якої змінної, чи слід це робити TEMP, TMP або обом. І ви не вказуєте.
Селерітас

3
Перегляньте цю статтю Чому існують і змінні середовища TMP, і TEMP, і яка саме? Відповідно до цього, TMPможливо, той, хто віддає перевагу (завдяки GetTempFileNameфункції) ...
aschipfl

Відповіді:


11

Щоб відповісти на запитання конкретно:

Яка різниця між ними?

Різниці немає. Вони просто різні псевдоніми для одного і того ж шляху. Як зазначав Марк, деякі програми використовують, %TMP%а інші використовують %TEMP%. Windows за замовчуванням призначає і той самий шлях, щоб забезпечити узгодженість між різними програмами і навіть захистити від помилок розробника, таких як використання обох в одній програмі.

Також зверніть увагу , що %Path%змінна не має нічого спільного ні з %TMP%чи %TEMP%. %Path%є системною змінною, в той час як %TMP%і %TEMP%обидва системні змінні, а також користувацькі змінні. Версії системи посилаються на C:\windows\TEMP. AFAIK, лише користувач "Системи" може фактично використовувати ці змінні, про що свідчить простий тест; відкрийте вікно cmd і введіть echo %TMP%або echo %TEMP%, і воно поверне шлях, визначений у користувацькій версії змінних. Однак оскільки %Path%не має користувацької версії (за замовчуванням), ви можете це зробити, echo %Path%і вона повертає значення системної змінної.

Я не зовсім впевнений, як програми використовують системну змінну "Шлях", імовірно, на що посилався cygwin, але незалежно, можу запевнити, що це не має нічого спільного з TMP або TEMP.

Сподіваємось, що відповість на ваше запитання.

EDIT: Я щойно згадав, для чого %Path%це - він дозволяє вам отримувати доступ до будь-яких файлів, що знаходяться в будь-якому з контурів, зазначених у змінній, без необхідності використовувати повний шлях до файлу. Наприклад, додавання "C: \ myprog \ bin" до% Path% дозволить вам просто ввести myprogчи myprog --helpінше в командний рядок без необхідності вводити повний шлях, наприклад "C:\myprog\bin\myprog.exe" --help. Звичайно використання командного рядка - лише приклад, воно дозволяє будь-якій програмі або інтерфейсу отримати доступ до будь-якого файлу, не потребуючи повного шляху.


Вони різні, деякі програми використовують одну, а іншу, тому вам потрібно обоє
user151019

Цікаво. Я не можу стискати каталоги, тому що мені інколи заборонено доступ. Зміна TEMP і TMP вирішила %USERPROFILE%\AppData\Local\Tempодну з моїх проблем, але породила багато іншого. Я змінив його назад на C:\Windows\Temp. Якщо є користувальницька версія, то система може використовувати C:\Windows\Temp, в той час як я можу використовувати, %USERPROFILE%\AppData\Local\Tempі всі радіють. Я спробую. Спасибі!
inf3rno

3

Вам потрібні обидва, оскільки різні програми використовують різні.

Їх не потрібно встановлювати на одне і те саме місце, оскільки лише дуже написані програми будуть використовувати обидва, якщо вони вказують на одне і те ж.

/ tmp - загальний каталог для тимчасових файлів в Unix, який також використовує змінну середовища TMPDIR

З пам’яті (коли я використовував це в середині 80-х) TEMP був оригінальним, який використовувався в DOS, а TMP, як правило, використовувався програмами, перенесеними з Unix, щоб відповідати / tmp. Однак коли програми писалися в DOS, оскільки не було контролю, різні розробники використовували різні. У сучасних Windows за замовчуванням Microsoft однаковий для обох див. Цей документ


2
Насправді стандартна змінна SUS є TMPDIR. Стандарт не має жодної згадки ні TMPабо TEMP, обидва з яких відбулися в світі DOS.
JdeBP

@J, SUS - це ????
Pacerier

1
Зараз трохи пізно, але: Єдина специфікація UNIX.
Тім Діггінс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.