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

Find the path used by the command line when calling an executable

我遇到了以下问题:

我想从命令行 运行 ecd.exe

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

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

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

当我在命令行中添加它的完整路径时,这个可执行文件 运行 是正确的。


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

但我无法在文件系统中的任何地方找到它。

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

@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.exe 替换为 j*.exe

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

for 通过将 ; 替换为 &echo - 上一行 ) 之前的脱字符和 &这一行中的"escapes"字符,导致cmd忽略特殊含义,将其视为普通字符。

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