Выполняет командную строку Windows искать где-то другие, чем те, расположениях, указанных в переменной PATH при запуске приложения?

Я попробовал следующий эксперимент.

Прежде чем я начну, я проверил путь переменную cmd, которая имеет следующее значение:

Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Calibre2\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;

Сначала я думал, что ЦМД выглядит только на исполняемые файлы в директориях, содержащиеся в переменной PATH, так что я случайно выбрал приложение - winword.exe (в Microsoft Word) и попытался запустить его из командной строки:

start winword

Но, к моему удивлению, программа запускается! Причина, почему я'м удивлены, что я'вэ искал через все директории в переменную путь к EXE-файл, называемый 'для winword' но все мои поиски пришли с пустыми руками!

Я'вэ поэтому пришел к выводу, что в командной строке должно быть известно, что в местах, кроме указанных в переменной PATH искать исполняемые файлы.

Так что, очевидно, следующая вещь, которую я сделал, чтобы искать точное место, где 'для winword' расположен исполняемый файл. Получается, что winword.exe находится здесь:

C:\Program Files\Microsoft Office 15\root\office15

Следовательно, давая мне мысль, что, может быть, КМД автоматически смотрит в ProgramFiles и ProgramFiles(х86) (и все поддиректории) при выполнении 'старт' командование? Что привело ко мне пытается запустить другое приложение, установленное на моем компьютере, наглость, с exe-файл, расположенный по адресу:

C:\Program Files (x86)\Audacity

Опять же, к моему удивлению, наглость не удалось запустить, когда я набрал:

start audacity

в командной строке.

Я'затем пририсовали каталог, содержащий audacity.exe к пути:

set path=%path%;C:\Program Files (x86)\Audacity

после чего я снова попробовал запускать наглость:

start audacity

Ну, не удивительно, наглость запущен.

Что я хочу знать, где конкретно командной строке искать исполняемые файлы? Почему winword.exe запускает даже когда каталог, содержащий это не часть пути, но то же самое, это'т правда для audacity.exe?

Я тоже пробовал другие приложения. Chrome и Firefox работает, когда я использую команду "Пуск".

Обновление: я использую Windows версия 6.3.9600 (ОС Windows 8.1)

Комментарии к вопросу (1)
Решение

В первый, я думал, что ЦМД выглядит только для исполняемых файлов в каталогах, содержащихся в переменной PATH, так что я случайно выбрал приложение - winword.exe (в Microsoft Word) и попытался запустить его из командной строки:

Winword.exe причина `` работали заключается в том, что существует ключ реестра, который определил путь к Microsoft Word (в Winword.exe). Подобная ключ для Firefox.exe и Chrome.exe если установлены эти приложения.

Раздел HKEY_LOCAL_MACHINE\программное обеспечение\Microsoft\окна\CurrentVersion равное\приложение путей Раздел реестра HKEY_CURRENT_USER\программное обеспечение\Microsoft\окна\CurrentVersion равное\приложение путей

что я хочу знать, где конкретно командной строке искать исполняемые файлы?

Путь системных переменных переменную PATH пользователей, и различные ключи в ..приложение\путей. Я был в состоянии подтвердить, что Audacity не Создать Раздел для себя, когда он's установленная.

когда ShellExecuteEx по функция вызывается с имя исполняемый файл в параметром lpFile, есть несколько мест где функция ищет файл. Мы рекомендуем зарегистрировать ваше приложения в App пути реестра. Это позволит избежать необходимости для приложений, чтобы изменить системную переменную окружения PATH.

  • текущий рабочий каталог.
  • папка Windows только (не выполнять поиск в подкаталогах).
  • в Windows\System32 папки.
  • каталогов, перечисленных в переменной окружения PATH.
  • рекомендуется: раздел HKEY_LOCAL_MACHINE\программное обеспечение\Microsoft\окна\CurrentVersion равное\приложения пути

Источник: Оформление Заявки

Комментарии (0)

Из командной строки, Если вы просто введите команду winword` не удается запустить.

Если вы введете старт для winword он работает.

Команда Старт является здесь ключевой.

При попытке выполнить файл через команду Пуск, Командная строка не выполняет поиск. Вместо этого, он передает имя файла (и аргументы) к самой Windows (через ShellExecuteEx по вызов API), которые затем должны искать файл'ы местонахождение. Есть несколько мест, где он выполняет поиск в следующем порядке:

  • Текущий рабочий каталог.

  • Каталог "окна" только (не выполнять поиск в подкаталогах).

  • В каталог Windows\System32 с.

  • Каталоги, перечисленные в "путь" переменной среды.

  • Рекомендуется: `Раздел HKEY_LOCAL_MACHINE\программное обеспечение\Microsoft\окна\CurrentVersion равное\приложение путей

Для winword заключается в том, что ключ реестра. Ключ есть, чтобы сохранить "путь" от получения слишком долго.

Комментарии (3)

Программа (когда вы указываете имя модуля без диска/путь в командной строке) в командный процессор Windows (CMD.EXE) может быть началось, когда нашли:

  • по переменной среды PATH (как исполняемый и жесткую связь/ссылку/ярлык с таким же именем)

  • по DOSKEY псевдоним

  • по пути заявки от в HKLM\программное обеспечение\Microsoft\окна\CurrentVersion равное\приложения пути " или " в HKCU\программное обеспечение\Microsoft\окна\CurrentVersion равное\приложение путей (при использовании команды Старт)

Используя эти знания (особенно последний), Вы можете создавать свои собственные псевдонимы удобным для вас способом. Например, вы можете создать в HKCU\программное обеспечение\Microsoft\окна\CurrentVersion равное\приложение Paths\au.exe с значение по умолчанию-файлов C:\Program (х86)\Audacity\Audacity.exe и запустить это приложение, просто набрав пуск ас в командной строке.

Комментарии (0)

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

Вы конкретно сказали, что вы искали файлы с расширением "exe-файл". Windows также будет пытаться выполнить файлы других расширений.

Еще одна переменная окружения, которая вступает в игру при выполнении команды переменная PATHEXT. Это; запятыми список расширений файлов, чтобы попытаться выполнить. Если вы ЭхоPATHEXTвы могли увидеть что-то вроде.Ком;.Ехе;.Летучая мышь;.УМК;.ВБС;... (и т. д.). Некоторые приложения используют эти и другие типы файлов в качестве их конечного пользователя точки входа. Это бывает гораздо реже, но случается. Я использовал несколько крупных коммерческих продуктов, которые начинаются с.Летучая мышьскрипты. Чтобы использовать одно из них в качестве примера, я могу запустить его с помощью командысамостоятельныйхотя нетstandalone.exe... вместо этого, он имеет отдельно.летучая мышь.

Некоторые из расширений у меня на PATHEXTя'м смотрю прямо сейчас я никогда не имел применения. Те, что я _have_ столкнуться гораздо чаще (но явно не столько, сколько "EXE-файл") являются:.ком,.летучая мышь,.ВБС,.Яш,.банки`. Первые два пакетных файлов Windows сценария, и другие три типы файлов для конкретных языков программирования, которые запускаются из скриптов и виртуальных машин, а не из exe файлов (соответственно: визуальный основной, JavaScript и Ява).

Комментарии (3)

старт для winword не скажу командной строке, чтобы запустить для winword. Это говорит о командной строке для запуска "старт" с аргументом для winword`. "Старт" использует собственные методы, чтобы найти для winword.

Просто для winwordрассказывает командной строке, чтобы запуститьдля winword. А если попробовать, что с помощью winword'не напуть`, это вовсе'т начать.

Комментарии (0)