TEMP vs TMP в переменных среды

правильно ли иметь эти две переменные окружения TEMP и TMP? Если я внесу изменения в одно, должен ли я внести те же изменения в другое? Например, я устанавливал cygwin, и направления сказали мне изменить переменную PATH, но и TEMP, и TMP имеют переменную path. В чем разница между ними?

screen shot of environment variables

Не уверен, почему люди хотят видеть это, но вот значения пути:
Путь в TEMP: C:Program файлыобщие ФайлыMicrosoft общийWindows живой;C:Program файлы (х86)Common папку общая папкаWindows видео;C:Program файлы (х86)НВИДИА CorporationPhysXCommon;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program файлы (х86)Общие файлыпрограммы AcronisSnapAPI;C:Program файлы (x86)комплектах Windows8.1средств для оценки производительности Windows;C:Program файлыМайкрософт SQL сервер110инструментыБинн;C:Program файлы (х86)окна LiveShared

путь в TMP: %USERPROFILE%AppDataLocalTemp

2
задан Celeritas
18.02.2023 3:04 Количество просмотров материала 3236
Распечатать страницу

2 ответа

чтобы ответить на вопрос конкретно:

в чем разница между ними?

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

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

я не совсем уверен, как программы используют системную переменную "Path", которая, вероятно, имела в виду cygwin, но, несмотря на это, я могу заверить вас, что она не имеет никакого отношения к TMP или TEMP.

надеюсь, что ответил на ваш вопрос.

редактировать: я только что вспомнил, что %Path% is for - это позволяет получить доступ к любым файлам, которые находятся в любом из путей, указанных в переменной без нужно использовать полный путь к файлу. Например, добавление "C:\myprog\bin" to %Path% позволит вам просто набрать myprog или myprog --help etc в командной строке без необходимости вводить полный путь, как "C:\myprog\bin\myprog.exe" --help. Конечно, использование командной строки - это только пример, он позволяет любой программе или интерфейсу получить доступ к любому файлу без необходимости полного пути.

8
отвечен RyanayR 2023-02-19 10:52

вам нужны оба, поскольку разные программы используют разные.

Они не должны быть установлены на том же месте, только очень плохо написанные программы будут использовать и при условии, что они указывают на то же самое.

/tmp - это общий каталог для временных файлов в Unix, также использующий переменную окружения TMPDIR

из памяти (когда я использовал это в середине 80-х) TEMP был оригинальным, используемым в DOS и TMP, как правило, используется программами, которые были перенесены из Unix чтобы соответствовать /tmp. Однако, когда программы писались в DOS, так как не было контроля, разные разработчики использовали разные. В современных Windows Microsoft по умолчанию то же самое для обоих см это doc

2
отвечен Mark 2023-02-19 13:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх