Как проверить, по какому пути запускается приложение? - PullRequest
0 голосов
/ 03 марта 2011

Например, я ввел

netsh.exe

в командной строке (aka cmd.exe)

Теперь я хотел бы знать, какой netsh.exe запускается, допустим, у меня есть более одного netsh.exe в моем PATH (я знаю, что будет запущен первый в PATH , но допустим, у меня есть очень БОЛЬШАЯ ПУТЬ , и у меня нет времени, чтобы искать его вручную. Честно говоря, это не всегда ваша машина, которую вы используете, и много раз PATH устанавливается админы и часто они не самые лучшие).

Есть ли способ в Windows, чтобы выяснить это из командной строки? Я хочу написать BATCH приложение , которое использует это.

Ответы [ 4 ]

5 голосов
/ 05 октября 2011

Это пакетный файл с одной строкой:

@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

Сохраните это как whereis.cmd, затем введите

whereis netsh
2 голосов
/ 03 марта 2011

Я думаю, что следующий пост в блоге делает именно то, что вы хотите: http://pankaj -k.net / weblog / 2004/11 / эквиваленты_of_which_in_windows.html

1 голос
/ 14 марта 2011

На Windows Server (по крайней мере, 2003 и 2008, не знаю с 2000) вы можете использовать where.exe

Где.exe /?
Описание:
Отображает расположение файлов, которые соответствуют шаблону поиска.
По умолчанию поиск выполняется по текущему каталогу и
в путях, указанных в переменной среды PATH.
...

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

1 голос
/ 03 марта 2011

Я бы использовал Windows Management Instrument (WMI) для запроса:

"SELECT ExecutablePath FROM Win32_Process WHERE Name = 'netsh.exe'"

http://www.activexperts.com/activmonitor/windowsmanagement/wmi/samples/ Образцы WMI

Вам нужно будет найти что-то подходящее для ваших сценариев

...