PDA

Показать полную графическую версию : [решено] Переменная %PATH%


бУРов
04-10-2012, 14:27
Через свойства Компьютера переопределяю переменную PATH:
set PATH=%PATH%;%ProgramFiles%

вызываю CMD, выполняю set P

Вижу, что переменная ProgramFiles=C:\Program Files (x86)

а PATH заканчивается на ";Program Files"

хотя я ожидал что ";Program Files (x86)"

Отчего это так? У других тоже?

WeNDiGO
04-10-2012, 15:14
посмотрите аналогию как написано в свойствах, я думаю поймете почему так

Petya V4sechkin
04-10-2012, 16:56
вызываю CMD, выполняю set P
Вижу, что переменная ProgramFiles=C:\Program Files (x86)
Потому что вызываете CMD из 32-битной оболочки, типа Total Commander?

бУРов
04-10-2012, 17:23
Спс

Iska
04-10-2012, 21:03
Главное — на кой шут «Program Files» в «PATH»?!

бУРов
04-10-2012, 22:39
Сбрасывать туда общедоступные программы. Скопировал туда 7z.exe, набрал потом просто "7z" и не нужно путь набирать.

Vadikan
04-10-2012, 22:45
бУРов, для этого есть AppPaths (http://www.outsidethebox.ms/12669/#_Toc305958531) - набрал просто 7 и... :)

Iska
04-10-2012, 23:04
Сбрасывать туда общедоступные программы. Скопировал туда 7z.exe, набрал потом просто "7z" и не нужно путь набирать. »
Заведите какую-либо папку внутри «Program files». Держать это в самой «Program files» — моветон.

бУРов, для этого есть AppPaths - набрал просто 7 и... »
Для использования из-под командной строки — совсем не резон. Я согласен — и Far Manager, и Total Commander учитывают при запуске и «App Paths», но из-под чистой командной строки сие не сработает. Да и какой смысл плодить кучу записей в реестре — по одной записи на каждую из кучи «общедоступных программ», когда достаточно одного добавления пути в PATH?!

бУРов
04-10-2012, 23:18
Из за того, что это моветон, заводить доп. папку? Нарушаем правило Оккама.

Iska
04-10-2012, 23:47
бУРов, как раз принцип (а не правило) бритвы Оккама (рекомендации Microsoft не привожу, они Вам, видно, не резон) Вы и нарушаете, используя саму «%ProgramFiles%» для не свойственных ей задач.

Vadikan
05-10-2012, 00:17
Для использования из-под командной строки — совсем не резон »
Из командной строки - нет, это свойство оболочки. Но тогда можно просто класть в system32 и не морочить себе голову ни с чем, ибо она уже в path :)

А вообще, я бы не сказал, что это моветон. Майкрософт рекомендует установку ПО в Program Files по той причине, что доступ на запись туда есть только у администраторов. В этом плане лучше класть туда, чем в C:\mysoft...

Iska
05-10-2012, 08:17
А вообще, я бы не сказал, что это моветон. Майкрософт рекомендует установку ПО в Program Files по той причине, что доступ на запись туда есть только у администраторов. В этом плане лучше класть туда, чем в C:\mysoft... »
Вы меня не совсем поняли. Я вовсе не призываю класть утилиты в «c:\Utils» и т.п. Напротив, пусть они лежат в «%ProgramFiles%». Но не в корне «%ProgramFiles%», а во вложенной папке, хоть в той же «%ProgramFiles%\Utils», або иного названия.

Во всяком случае, я делаю именно так. И более того, держу отдельно такие группы утилит, как Sysinternals, NirSoft, некоторые другие. Какие-то утилиты, имеющие инсталлятор, сами предлагают правильные пути для установки — например утилиты из группы GnuWin32.

бУРов
05-10-2012, 10:41
Прошу прощения, я тут затупил. Не обратил внимания, что в семерке две переменных окружения типа %ProgramFiles%:

- %ProgramFiles%=C:\Program Files
- %ProgramFiles(x86)%=C:\Program Files (x86)

Если в TC вызвать cmd.exe и набрать "set PRO", то обе эти переменные установлены в C:\Program Files (x86)
Если же вызвать cmd.exe тоже в TC, но из system.bar, то там у них разные значения
:(

Vadikan
05-10-2012, 11:58
бУРов, какая разрядность TC? Он же есть х64.

бУРов
05-10-2012, 12:26
Я про это как-то не подумал.
"Total Commander Версия 7.55a 32 bit (7.7.2010)"




© OSzone.net 2001-2012