2015-03-24 2 views
1

У меня есть несколько активных путь, и когда я запускаю следующую строкуПолучить полный путь к программе в CMD линии

c:\> myProg.exe 

myprog.exe выполняет, но я понятия не имею, где он на самом деле находится.

Есть ли какой-либо инструмент командной строки, который может помочь мне отменить поиск физической папки, в которой живет myProg?

+0

Для выполнения скрипта, который проинформирует вас о том, что будет выполняться с любой командой, см. [Реализуйте, какая команда в пакетном скрипте] (http://stackoverflow.com/a/21146630/1012053). – dbenham

ответ

1

очень простой только

where myprog.exe 

, например

where ping 

результат:

C:\Windows\System32\PING.EXE 
+0

К сожалению, WHERE перечисляет все пути, которые соответствуют - это не говорит вам, какой из них действительно будет выполняться. Кроме того, он не распознает внутренние команды. – dbenham

+0

hello @dbenham всегда существует простой способ, которым ваш bat-файл очень сложный 'Start-Process -PassThru powershell.exe | Get-Process -Module' этот простой сценарий powershell запускает процесс «process» get-process и дочерний процесс. – powershell

+0

Но что, если вы хотите получить ответ без фактической работы команды. Команда может быть разрушительной, или, возможно, это ресурс. Часть сложности моего пакетного скрипта заключается в том, чтобы получить ответ без фактической работы команды (кроме использования опции справки внутренних команд). Кроме того, мой сценарий явно предназначен для среды CMD.EXE, таким образом, его способность обнаруживать внутренние команды. – dbenham

1

Вы можете найти приложение полный путь, используя:

for %i in (ping.exe) do @echo.%~$PATH:i 
+0

Это не сможет обнаружить файлы в текущем каталоге (если текущий каталог также не находится в PATH). Кроме того, это не может распознать внутренние команды. – dbenham

Смежные вопросы