Скажем, у меня есть программа, X.EXE
установленная в папке c:\abcd\happy\
в системе. Папка находится по системному пути. Теперь предположим, что в системе есть другая программа, которая также называется X.EXE, но установлена в папке c:\windows\
.
Можно ли быстро узнать из командной строки, что если я введу, X.EXE
какой из двух X.EXE
будет запущен? (но без необходимости поиска по каталогу или просмотра деталей процесса в диспетчере задач).
Может быть, какая-то встроенная команда или какая-то программа может делать что-то подобное? :
detect_program_path X.EXE
windows
command-line
path
Zabba
источник
источник
Ответы:
Используйте
where
команду. Первый результат в списке будет выполнен.Согласно этому сообщению в блоге , он
where.exe
входит в состав Windows Server 2003 и более поздних версий, поэтому он должен работать только с Vista, Win 7 и др.В Linux эквивалентом является
which
команда, напримерwhich ssh
.источник
listdlls -d foo.dll
чтобы увидеть все процессы, в которых загружен модуль, и полный путь к загруженному модулю. Кроме того, вы можете просто выполнить поиск файла в Windows по имени файла.Вот небольшой сценарий cmd, который вы можете скопировать и вставить в файл с именем примерно так
where.cmd
:источник
Как ветка, упомянутая в комментарии,
get-command
в PowerShell также может решить эту проблему. Например, вы можете ввести,get-command npm
и результат будет следующим:источник
(get-command npm).Source
ответит только путем к npm (для примера) вместо всей таблицы всех свойств.