5

Я пользователь Linux, провожу некоторое время в Windows и пытаюсь понять некоторые парадигмы Windows, а не бороться с ними. Я заметил, что каждая программа, установленная традиционным способом, добавляет исполняемые файлы к

C:\Program Files

а затем добавляет ярлык на рабочий стол / меню «Пуск», содержащий полный путь. Тем не менее, нет общего каталога со ссылками на программное обеспечение, т.е. C:\bin\bar.exe который бы ссылался на

C:\Program Files\foo\bar.exe

Поэтому после установки приложения единственный способ использовать приложение - через меню или перейти к исполняемому файлу в файловой системе. Невозможно просто Win-R чтобы открыть диалог запуска, а затем набрать bar или bar.exe как это возможно с помощью notepad или mspaint . Я понимаю, что в Windows 8 это улучшилось благодаря ужасному стартовому экрану, который поддерживает ввод названия приложения, но опять же это зависит от того, зарегистрировалось ли приложение для этого.

Буду ли я причинять вред, рекурсивно добавляя C:\Program Files в путь Windows? Я понимаю, что будут конфликты имен (т.е. uninstall.exe), но могут ли быть другие проблемы?

2 ответа2

6

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

  • Избегайте конфликтов имен. В частности, убедитесь, что на первом месте стоят стандартные компоненты пути (например, C:\windows и т.д.), Чтобы никакая системная утилита не скрывалась в пути.
  • Переменная PATH может содержать не более 8191 символов. Поэтому, если у вас есть много папок с программами, которые вы хотите добавить, возможно, вам придется выбирать и выбирать. Если вы предполагаете, что средняя длина пути составляет 50 символов на программу, это дает вам место для около 160 программ в PATH.

Причина, по которой это не сделано по умолчанию, вероятно, заключается в том, что командная строка используется в Windows относительно редко, поэтому никогда не возникало острой необходимости иметь все в пути. Большинство программ, которые должны вызывать другие программы, приспособились к этому и используют полный путь для вызовов.

Наконец, если вы хотите много работать в командной строке, как в Linux, я рекомендую вам установить Cygwin. Он предоставляет Linux-подобную среду в Windows и позволяет работать в командной строке. Он также поддерживает свою собственную PATH , которую вы можете настраивать, не влияя на другие приложения Windows.

0

Ответ на это зависит от типа программы, о которой вы говорите. Если вы говорите о программах, которые используют общие библиотеки (DLL):

C:\Program Files

это правильное место для них. Вы не можете поместить файлы для этих программ в одну и ту же папку, потому что они могут иметь конфликт имен. Если вы говорите о программах, которые используют статические библиотеки (без DLL):

C:\ProgramData\Bin

это правильное место для них. Это сродни:

/usr/local/bin

в линуксе Этот каталог доступен через переменную папки:

ProgramData=C:\ProgramData

Если вам нужно получить на свой путь программы с общими библиотеками, вы можете использовать их символическую ссылку:

mklink C:\ProgramData\Bin\alfa.exe "C:\Program Files\Alfa\alfa.exe"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .