批处理文本数据库工具箱 BatDatabaseTools

Posted by F_Ms on December 2, 2015

工具箱出生背景:

之前作者用批处理写的教学辅助中为了添加一个屏幕共享功能找遍了各种远程工具,接触了局网的VNC,Radmin等,感觉都是各种强大,但是都没有命令行方式指定密码直接连接的Viewer,可能是因为安全原因吧,后来偶然间发现UltraVNC的Viewer支持指定密码连接,从那时就一直想着一定要写个VNC通讯录连接工具,近来手闲着手去写,但是越写越憋屈,因为在通讯录保存到配置后二次修改方面实属困难(只会批处理,不了解其它的语言这方面具体怎么样),在这种情况下决定先写一套文本数据库操作工具箱子程序再回来继续写VNC通讯录连接工具,于是批处理文本数据库工具箱诞生了,可能名字听起来会让人误解为MicrosoftSQL,MySQL相关的数据库工具,但是是在也想不出来除了叫数据库还能叫什么 - -

工具箱用途:

Database_Read 从指定文件、指定行、指定分隔符、指定列获取内容赋值到指定变量 
Database_Update 修改指定文件的指定行以指定分隔符分割的指定列的内容 
Database_Print 从指定文件、指定行、指定分隔符、指定列获取内容并打印到屏幕或文件 
Database_Find 从指定文件、指定行、指定分隔符、指定列、指定字符串搜索并将搜索结果的行列号写入到指定变量中 
Database_Insert 插入数据到指定文本数据库文件中 
Database_Sort 排序行数据使其转移到指定行 
Database_DeleteLine 删除指定文件指定行

使用方法:

子程序中有测试命令和帮助,将子程序模块直接复制到自己代码中后直接根据使用方法调用即可(不会被正常运行到的位置),每个子程序都可以独立运行,不需要的模块直抛弃就好了
 所有子程序没有使用第三方工具,也没有使用不稳定的结果截取命令结果输出判断,兼容性无问题,WinXP/Win7/Win10测试均未出问题

注意事项:

子程序运行需要变量延迟,setlocal ENABLEDELAYEDEXPANSION请注意开启
 子程序使用了以下for %变量 (按十进制ASCII编码字符集排序),请在编写程序时for嵌套中调用批处理时避开这些变量名
 %%; %%: %%^> %%? %%@ %%A %%B %%C %%D %%E %%F %%G %%H %%I %%J %%K %%L %%M %%N %%O %%P %%Q %%R %%S %%T %%U %%V %%W %%X %%Y %%Z %%[ %%\ %%] %%_
 所有子程序未做任何特殊字符的处理,故像"< > | &"等这些字符的兼容性就很难保证了

测试截图

a

https://github.com/imfms/TextDatabase-Bat