查找调用可执行文件时命令行使用的路径
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
目录名。
我遇到了以下问题:
我想从命令行 运行 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
目录名。