Назад | Перейти на главную страницу

Есть ли способ увидеть путь к программе, выполняемой из Windows CLI?

Если я ввожу команду в командной строке, командный процессор ищет ее по текущему пути, а затем (если не найден) по путям, перечисленным в переменной среды PATH.

Итак, есть ли способ легко узнать, по какому именно пути была найдена моя набранная команда? Это может быть полезно, если ваша команда может появляться в нескольких системных путях.

Пакетный файл с параметром моей команды принимается как решение.

Тогда, поскольку самостоятельный ответ не принято моей репутацией, вот ответ, который я нашел:

Я нашел намек на это Вот, в сообщении в блоге MSDN, где Управление путями в пакетном файле описан. Собственно, создаем и вызываем командный файл ниже:

@REM this file is called where.in.PATH.cmd

@ECHO %1
@ECHO %~$PATH:1

Если вы хотите узнать, какой файл tf.exe будет запущен, просто введите:

where.in.PATH.cmd tf.exe

Результат:

tf.exe
C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\TF.exe

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

В среде Linux вы можете использовать команду which your_binary. Для эквивалента под Windows вы можете использовать where команда, как объяснено в эта почта.

WHERE это самое близкое, что вы найдете в Windows, и он включен во все ОС Windows, начиная с 2003 года.

  • Вы можете загрузить procmon.exe из пакета Sysinternals Suite (Microsoft).
  • Запустите Procmon.exe
  • Затем запустите вашу команду.

Вы должны видеть каждый доступ к чему угодно и где угодно. В таких ситуациях я использую procmon для отладки.