Batch file 查找调用可执行文件时命令行使用的路径

Batch file 查找调用可执行文件时命令行使用的路径,batch-file,command-line,command-prompt,windows-shell,Batch File,Command Line,Command Prompt,Windows Shell,我遇到以下问题: 我想从命令行运行ecd.exe 我已将其完整路径添加到“path”环境变量中 从命令行调用ecd.exe时,我得到以下输出: Error: ecd.exe should be located under the Eclipse home directory. 当我在命令行中添加其完整路径时,此可执行文件将正确运行 我发现另一个路径文件夹中存在一个相同的文件 但是我在文件系统中的任何地方都找不到它 调用此可执行文件时,如何找到命令行使用的路径?@ECHO OFF SETLOC

我遇到以下问题:

我想从命令行运行
ecd.exe

我已将其完整路径添加到“path”环境变量中

从命令行调用
ecd.exe
时,我得到以下输出:

Error: ecd.exe should be located under the Eclipse home directory.
当我在命令行中添加其完整路径时,此可执行文件将正确运行


我发现另一个
路径
文件夹中存在一个相同的文件

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

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

@ECHO OFF
SETLOCAL
设置“路径d=%cd%;%path%”
设置“pathd=%pathd:)=^)%”
对于/f“delims=“%%a IN('echo%pathd:;=^&echo%')存在时执行“%%~a\j*.exe”echo%%~a
后藤:EOF
这应该可以找到路径上的
J*.exe
文件(因为我没有
ecd.exe
)-只需将
ecd.exe
替换为
J*.exe

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

通过替换
对串联的增强路径字符串进行操作
with
&echo
-前一行
前面的插入符号和此行中的
&
将“转义”字符,导致
cmd
忽略特殊含义并将其视为普通字符

这将依次提供
%%a
作为每个
路径
目录;查看目录中是否存在文件(
j*.exe
),如果找到该文件,请查看目录名。

@echo OFF
SETLOCAL
设置“路径d=%cd%;%path%”
设置“pathd=%pathd:)=^)%”
对于/f“delims=“%%a IN('echo%pathd:;=^&echo%')存在时执行“%%~a\j*.exe”echo%%~a
后藤:EOF
这应该可以找到路径上的
J*.exe
文件(因为我没有
ecd.exe
)-只需将
ecd.exe
替换为
J*.exe

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

通过替换
对串联的增强路径字符串进行操作
with
&echo
-前一行
前面的插入符号和此行中的
&
将“转义”字符,导致
cmd
忽略特殊含义并将其视为普通字符


这将依次提供
%%a
作为每个
路径
目录;查看目录中是否存在该文件(
j*.exe
),如果找到该文件,则查看该文件的目录名。

@a_horse_with_no_name:感谢您的编辑(不确定如何引用“CMD”)。你知道如何解决这个问题吗?@a_horse_和_no_name:在
C:\Freescale\CW MCU v10.6\eclipse
下@a_horse_和_no_name:我以为shell正在从不同的路径执行一个同名文件。我想知道那可能是哪条路径。@a_horse_,没有名字:谢谢你的编辑(我真的不知道如何引用“CMD”)。你知道如何解决这个问题吗?@a_horse_和_no_name:在
C:\Freescale\CW MCU v10.6\eclipse
下@a_horse_和_no_name:我以为shell正在从不同的路径执行一个同名文件。我想知道那可能是哪条路。是的,那将是一个想法。谢谢,它正在工作!!!但不幸的是,它在工作,因为它使我在我最初的目的上走到了一条死胡同(这是为了理解为什么当我称之为有/没有完整路径时,它会以不同的方式运行)。也许我应该发布一个不同的问题,无论如何我都会接受你的回答。再次感谢:)是的-那将是一个想法。谢谢,它的工作!!!但不幸的是,它在工作,因为它使我在我最初的目的上走到了一条死胡同(这是为了理解为什么当我称之为有/没有完整路径时,它会以不同的方式运行)。也许我应该发布一个不同的问题,无论如何我都会接受你的回答。再次感谢:)