2016-04-14 47 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

謝謝,它的工作!但不幸的是工作,因爲它導致我在最初的目的上陷入死衚衕(這是爲什麼當我用/不用完整路徑調用它時,它以不同的方式表現)。也許我應該發表一個不同的問題,無論如何我會接受你的答案。再次感謝 :) –