Windows批处理的上古语法相当难用。尤其是当要持久化一些简单的数据时,更是麻烦容易出错。
Bat-KV是一个开源于GitHub的羽量级面向.bat的单文件存储KV数据库,支持最基础的CRUD,封装了一些基本的API,非常容易上手。
如果项目有帮到你,还请不吝啬点个Star支持一下 :)
GitHub
Bat-KV 基础
存储文件
-
文件扩展名:
.bkv(Batch Key-Value) -
存储格式: 每行一个键值对,使用反斜杠
\分隔username\Alice age\25 city\Beijing -
默认文件名:
_BATKV.bkv -
字符集: 建议使用 ANSI 以确保兼容性
-
键名限制: 只能包含英文字母、数字和下划线,长度不超过 36 个字符,区分大小写
方法与变量命名约定
- 公共函数: 以
BKV.前缀命名,例如BKV.New、BKV.Fetch - 内部函数: 以
BKV.Private.前缀开头,不应在外部直接调用 - 内部变量: 以
BKV.Inner.前缀开头,不应在外部直接访问 - 返回变量规范:
BKV_STATUS:方法执行的返回状态(OK/NotOK)BKV_RESULT:查询结果值(如BKV.Fetch返回的值)BKV_ERR:错误信息(失败时返回,格式为Bat-KV ERR: [错误信息])
下载与安装
获取Bat-KV
- 前往 GitHub Release 页面
- 下载
Bat-KV.zip - 解压后得到核心文件
Bat-KV.bat
引入方式
- 局部使用: 将
Bat-KV.bat与目标批处理文件放在同一目录,使用时直接call即可 - 相对路径: 如果文件在子目录或上级目录中,使用路径前缀导入
- 全局使用: 将
Bat-KV.bat所在目录添加到系统的 PATH 环境变量
示例:
REM 当前目录
call Bat-KV.bat :BKV.New
REM 子目录
call lib\Bat-KV.bat :BKV.New "mydata.bkv"
REM 上级目录
call ..\Bat-KV.bat :BKV.Fetch "username"
快速使用
最基础的例子包括创建数据库、写入、读取和删除数据:
@echo off
REM 创建数据库
call Bat-KV.bat :BKV.New
echo Create status: %BKV_STATUS%
REM 写入数据
call Bat-KV.bat :BKV.Append "name" "Alice"
call Bat-KV.bat :BKV.Append "age" "25"
REM 读取数据
call Bat-KV.bat :BKV.Fetch "name"
echo Name: %BKV_RESULT%
REM 判断是否存在
call Bat-KV.bat :BKV.Include "email"
if "%BKV_RESULT%"=="No" (
call Bat-KV.bat :BKV.Append "email" "alice@example.com"
)
REM 删除数据
call Bat-KV.bat :BKV.Remove "age"
echo Remove status: %BKV_STATUS%
pause
API 快速说明
BKV.New
新建数据库文件。文件已存在时不会覆盖。
call Bat-KV.bat :BKV.New "config.bkv"
BKV.Append
插入或更新键值对。
call Bat-KV.bat :BKV.Append "username" "Alice"
BKV.Fetch
读取键对应的值。
call Bat-KV.bat :BKV.Fetch "username"
echo User: %BKV_RESULT%
BKV.Remove
删除键值对。(即使键不存在也返回成功)
call Bat-KV.bat :BKV.Remove "username"
BKV.Include
检测键是否存在。
call Bat-KV.bat :BKV.Include "db_host"
if "%BKV_RESULT%"=="No" (
call Bat-KV.bat :BKV.Append "db_host" "localhost"
)
完整文档
完整文档及示例程序,请参考 GitHub 主仓库文档 及 Release 附带的脚本。