2016-04-14 48 views
0

我遇到以下问题时所使用的命令行的路径:查找调用可执行

我想从一个命令行运行ecd.exe

我已将其完整路径添加到'路径'环境变量。

当从命令行调用ecd.exe,我得到下面的输出:

Error: ecd.exe should be located under the Eclipse home directory. 

此可执行文件运行正常,当我在命令行中添加它的完整路径。


我发现在其他path文件夹中存在相同的文件。

但是我在文件系统中的任何地方都找不到它。

如何在调用此可执行文件时找到命令行使用的路径?

+0

@a_horse_with_no_name:感谢编辑(不太确定如何引用“CMD”)。你知道如何解决这个问题吗? –

+0

@a_horse_with_no_name:在C:\ Freescale \ CW MCU v10.6 \ eclipse下。 –

+0

@a_horse_with_no_name:我认为shell正在执行一个不同路径的同名文件。我想知道可能是哪条路。 –

回答

2
@ECHO OFF 
SETLOCAL 
SET "pathd=%cd%;%path%" 
SET "pathd=%pathd:)=^)%" 
FOR /f "delims=" %%a IN ('echo %pathd:;=^&ECHO %') DO IF EXIST "%%~a\j*.exe" ECHO %%~a 

GOTO :EOF 

这应该找到 - 好,路径上J*.exe文件(因为我没有ecd.exe) - 刚刚替补ecd.exej*.exe

它将当前路径追加到由;分隔的当前目录名,然后在结果字符串中将每个)更改为^)

for对所连接的增强路径字符串操作的替代;&echo - 在)上一行和该行的&之前插入记号“逃逸”的性格,导致cmd不顾特殊意义,把它当作普通人物来对待。

这提供%%a作为每个单独的path目录依次;查看目录中是否存在文件(j*.exe),如果找到该文件,请查看目录名称echo

+0

我需要把它放在一个批处理文件中,对吧? –

+0

是的 - 这将是一个想法。 – Magoo

+0

谢谢,它的工作!但不幸的是工作,因为它导致我在最初的目的上陷入死胡同(这是为什么当我用/不用完整路径调用它时,它以不同的方式表现)。也许我应该发表一个不同的问题,无论如何我会接受你的答案。再次感谢 :) –