исполняемые файлы и переменная пути - PullRequest
0 голосов
/ 06 сентября 2018

При работе в любой командной оболочке обычно требуется ввести конкретный путь для запуска исполняемой программы. Как например

start c:/ProgramFiles/Steam.exe

Я знаю, что это не настоящий каталог для steam, но не важно.

Однако есть исполняемые файлы, для которых мне не нужно было набирать целый каталог, например chrome.exe. Все, что мне нужно было сделать, это набрать start chrome.exe в моей оболочке и boom, там появляется окно. Мне просто интересно, почему это так, если хром в любом случае «особенный».

возможное объяснение, которое я имею, когда запускаю исполняемый файл, оболочка обычно просматривает текущий рабочий каталог и видит, существует ли исполняемый файл. Если нет, он ищет переменные окружения и ищет переменную, называемую PATH. Поскольку переменная path представляет собой набор случайных путей, которые объединяются в одну строку, она ищет в каждом пути исполняемый файл, соответствующий вызову run. Однако, когда я посмотрел мою переменную PATH, я получил это:

%SystemRoot%\system32\WindowsPowerShell\v1.0\;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk-9\bin;C:\Program Files (x86)\QuickTime\QTSystem\

Я не нашел там пути, указывающего на местоположение chrome.exe, которое будет C:/Program Files (x86)/Google/Chrome/Application Может кто-нибудь объяснить, для чего на самом деле используется эта PATH переменная?

Я знаю по общему определению, что он используется, когда программы должны знать, где что-то установить, запустить что-то и т. Д., Но там всего 5 путей, и у меня установлены сотни программ, поэтому я не понимаю, как это сделать. будет работать и почему chrome.exe ведет себя так?

1 Ответ

0 голосов
/ 06 сентября 2018

Большинство ваших мыслей о переменной %PATH% верны. Однако учтите, что существуют Системные переменные среды и Пользовательские переменные среды .

Пути в переменной PATH не являются случайными , как вы говорите. Все они служат цели. Большинство из них добавляются во время установки программного обеспечения, что позволяет вам или системе легко находить исполняемые файлы, что не так просто, как может показаться. Например. у вас есть папка программ для 32-битных приложений и одна для 64-битных приложений. Там есть папка %windir%/System32, ваша папка пользователя и некоторые ручные установки.

Кроме того, операционная система не только выполняет поиск .exe исполняемых файлов. Файлы .bat, например, также выполняются в командной строке по умолчанию (cmd), с другой стороны, PowerShell имеет так называемый профиль, который запоминает бит .bashrc и может определять псевдонимы и функции , можно узнать из мира bash.

Чтобы узнать, почему выполняется chrome.exe, введите в PowerShell следующее:

Get-Command chrome.exe

И он покажет вам, что определяет эту команду. Это исполняемый файл? Да, это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...