Bat-KV
: An Ultra-Lightweight Database for Windows Batch (.bat
)
Windows batch scripting is notoriously tricky, especially when it comes to persisting simple data.
Bat-KV
is an open-source, single-file key-value database designed for .bat
scripts. It provides the basic CRUD operations, wraps some simple APIs, and is quick to pick up.
If this project helps you, consider giving it a Star on GitHub.
GitHub
Bat-KV Basics
Storage Files
-
File Extension:
.bkv
(Batch Key-Value) -
Format: One key-value pair per line, separated by a backslash
\
username\Alice
age\25
city\Beijing
-
Default Filename:
_BATKV.bkv
- Encoding: ANSI recommended for platform compatibility
-
Key Constraints:
- Only English letters, digits, and underscores allowed
- Maximum length of 36 characters
- Case-sensitive
Naming Conventions
-
Public Functions: Start with
BKV.
, e.g.,BKV.New
,BKV.Fetch
-
Private Functions: Start with
BKV.Private.
, not intended for external use -
Internal Variables: Start with
BKV.Inner.
, not intended for external access -
Return Variables:
-
BKV_STATUS
: Execution result (OK
/NotOK
) -
BKV_RESULT
: Data returned by queries (e.g.,BKV.Fetch
value) -
BKV_ERR
: Error detail if failure occurs, in the formatBat-KV ERR: [message]
-
Download & Installation
Getting Bat-KV
- Go to the GitHub Release page
- Download
Bat-KV.zip
- Extract and locate the core file
Bat-KV.bat
Importing
-
Local Use: Place
Bat-KV.bat
in the same directory as your batch script, call it directly - Relative Path: If the file is in a subdirectory or parent directory, prefix the path
-
Global Use: Add the directory containing
Bat-KV.bat
to your system PATH environment variable
Example:
REM Current directory
call Bat-KV.bat :BKV.New
REM Subdirectory
call lib\Bat-KV.bat :BKV.New "mydata.bkv"
REM Parent directory
call ..\Bat-KV.bat :BKV.Fetch "username"
Quick Start
A minimal example including creating a database, writing, reading, and deleting data:
@echo off
REM Create database
call Bat-KV.bat :BKV.New
echo Create status: %BKV_STATUS%
REM Insert data
call Bat-KV.bat :BKV.Append "name" "Alice"
call Bat-KV.bat :BKV.Append "age" "25"
REM Read data
call Bat-KV.bat :BKV.Fetch "name"
echo Name: %BKV_RESULT%
REM Check key existence
call Bat-KV.bat :BKV.Include "email"
if "%BKV_RESULT%"=="No" (
call Bat-KV.bat :BKV.Append "email" "alice@example.com"
)
REM Delete data
call Bat-KV.bat :BKV.Remove "age"
echo Remove status: %BKV_STATUS%
pause
API Quick Reference
BKV.New
Create a new database file. Existing files are not overwritten.
call Bat-KV.bat :BKV.New "config.bkv"
BKV.Append
Insert or update a key-value pair.
call Bat-KV.bat :BKV.Append "username" "Alice"
BKV.Fetch
Read the value of a given key.
call Bat-KV.bat :BKV.Fetch "username"
echo User: %BKV_RESULT%
BKV.Remove
Remove a key-value pair. Returns success even if the key does not exist.
call Bat-KV.bat :BKV.Remove "username"
BKV.Include
Check if a key exists.
call Bat-KV.bat :BKV.Include "db_host"
if "%BKV_RESULT%"=="No" (
call Bat-KV.bat :BKV.Append "db_host" "localhost"
)
Full Documentation
For complete documentation and example programs, refer to the GitHub main repository and the scripts attached to the Release.
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.