Если я ввожу команду в командной строке, командный процессор ищет ее по текущему пути, а затем (если не найден) по путям, перечисленным в переменной среды 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 для отладки.