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正在从不同的路径执行一个同名文件。我想知道那可能是哪条路。是的,那将是一个想法。谢谢,它正在工作!!!但不幸的是,它在工作,因为它使我在我最初的目的上走到了一条死胡同(这是为了理解为什么当我称之为有/没有完整路径时,它会以不同的方式运行)。也许我应该发布一个不同的问题,无论如何我都会接受你的回答。再次感谢:)是的-那将是一个想法。谢谢,它的工作!!!但不幸的是,它在工作,因为它使我在我最初的目的上走到了一条死胡同(这是为了理解为什么当我称之为有/没有完整路径时,它会以不同的方式运行)。也许我应该发布一个不同的问题,无论如何我都会接受你的回答。再次感谢:)