如何通过独立批处理文件获取Delphi配置信息(含Android SDK路径等)
用批处理获取Delphi的Android配置信息
完全可以通过批处理获取Delphi中配置的Android SDK相关信息,核心思路是读取Delphi存储配置的注册表项或者配置文件,再结合文件系统遍历获取具体细节。
方法一:通过注册表读取核心配置
Delphi会将Android SDK的路径等关键配置存储在Windows注册表中,不同版本的Delphi对应不同的注册表路径(BDS版本号对应关系:Delphi 10.3=19.0、10.4=20.0、11=21.0、12=22.0)。
批处理示例代码
@echo off setlocal enabledelayedexpansion :: 替换为你的Delphi版本对应的BDS版本号 set BDS_VERSION=21.0 :: 读取注册表中的Android SDK路径 for /f "tokens=2*" %%a in ('reg query "HKCU\Software\Embarcadero\BDS\!BDS_VERSION!\Platforms\Android" /v SDKPath 2^>nul') do ( set ANDROID_SDK_PATH=%%b ) if not defined ANDROID_SDK_PATH ( echo 未找到Android SDK路径,请检查BDS_VERSION是否正确,或尝试使用HKLM替换HKCU(需管理员权限) exit /b 1 ) :: 输出SDK路径 echo Android SDK 路径: *!ANDROID_SDK_PATH!* :: 获取已安装的API级别 echo. echo 已安装的Android API级别: for /d %%d in ("!ANDROID_SDK_PATH!\platforms\android-*") do ( echo - %%~nxd ) :: 查找aapt.exe位置(部分新版本SDK可能用aapt2.exe) echo. echo aapt.exe 位置: for /d %%d in ("!ANDROID_SDK_PATH!\build-tools\*") do ( if exist "%%d\aapt.exe" ( echo - %%d\aapt.exe ) :: 可选:同时查找aapt2.exe if exist "%%d\aapt2.exe" ( echo - %%d\aapt2.exe ) ) endlocal
方法二:读取Delphi配置文件
如果注册表读取失败,可以尝试读取Delphi安装目录下的bds.config文件(通常在C:\Program Files (x86)\Embarcadero\Studio\<版本号>\bin),文件中会定义ANDROID_SDK_ROOT等环境变量。
批处理片段示例
@echo off setlocal enabledelayedexpansion :: 替换为你的Delphi安装路径 set BDS_BIN_PATH=C:\Program Files (x86)\Embarcadero\Studio\21.0\bin :: 从bds.config中提取ANDROID_SDK_ROOT for /f "tokens=2 delims==" %%a in ('findstr /i "ANDROID_SDK_ROOT" "!BDS_BIN_PATH!\bds.config"') do ( set ANDROID_SDK_PATH=%%a ) :: 后续处理同方法一... endlocal
注意事项
- 若注册表路径在
HKLM而非HKCU,需要以管理员身份运行批处理,并将命令中的HKCU替换为HKLM。 - 部分高版本Android SDK已弃用
aapt.exe,改用aapt2.exe,批处理中可同时检测两者。 - 当路径包含空格时,批处理中必须用双引号包裹路径,避免解析错误。
内容的提问来源于stack exchange,提问作者zeus
相关产品推荐
相关产品推荐

