功能介绍: | | | | | | | | | ▓▓▓ | | ▓▓▓ | | ▓▓ | | ▓▓ | | ▓▓ | | ▓▓ ▓ | | ▓▓▓▓▓▓ | | ▓▓▓▓▓▓ | | ▓▓▓ ▓▓ | | ▓▓▓ ▓▓ | | ▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓ | | ▓▓▓▓▓▓▓▓▓▓ | | ▓▓▓▓▓▓ | | ▓ ▓▓ | | ▓ ▓▓ ▓▓▓ | | ▓ ▓▓ ▓▓▓ | | ▓ ▓▓ ▓ ▓▓ | | ▓▓ ▓▓ ▓▓ | | ▓ ▓▓ ▓▓▓▓▓▓ | | ▓▓ ▓▓ ▓▓▓ | | ▓▓▓ ▓▓ ▓▓ | | ▓▓ ▓▓▓ ▓▓ | | ▓▓▓▓ ▓▓▓▓ ▓▓ | | ▓▓ ▓▓ ▓▓▓ | | ▓▓ ▓▓ ▓▓▓▓ | | ▓▓ ▓▓ ▓▓▓ | | ▓▓ ▓▓ ▓▓▓▓▓ | | ▓ ▓▓ ▓▓▓▓▓▓▓ | | ▓ ▓▓▓▓▓▓▓▓ | | ▓▓ | | | | | | 比如 上面的 这个点阵字 用 "点阵编码_生成器.bat" 转换后的代码为: | | | | | | | | 编码: | | 30 -3 / 31 -3 /COPY |
转换后的代码 用 "点阵编码_解释器.bat" 就能还原成 上面的点阵字
感觉挺过瘾的 (此套代码花了我两天时间,因该没BUG了)
代码中 反复利用到的批处理技巧有:
1.变量的延迟
2.穿插式被动叠加技术 (大概很少人用吧 但是作用却很大)
3.计算代码 地址的偏移
4.叠加压缩代码技术
5.还有..... 自己看 记不太清楚了(一些小技巧)
★.本代码编写格式是我一向喜欢用的模块形式 所以有兴趣的朋友 可以很容易的加入到 自己的作品当中
当用大大的 点阵字 来提示用户操作时 用户是种什么感觉? (应该会很过瘾吧! 哈哈)
注:本套代码 运行时 几乎不占CPU 效率很高
欢迎大家测试...
以下是两个文件的代码,
压缩包里附有 示例 与我推荐的两个在线点阵字生成网址
点阵编码_生成器.bat | @Echo off&color a | | Title ☆Title 点阵编码生成器 -By 凌枫工作组 Q群:35962310- | | setlocal EnableDelayedExpansion | | set S= | | | | SET 换行符=/ | | SET 循环符=# | | | | | | :输入文档路径 | | If "%1" == "" ( | | FOR /L %%S IN (1,1,7) Do echo. | | Echo %S%%S%请将你要转换的点阵字本文文档 直接拖到本批处理上. | | FOR /L %%S IN (1,1,5) Do echo. | | Echo %S%%S%请在没有空格 与 特殊字符的 路径下操作. | | pause>nul&Exit | | ) | | | | call :获取前背景 %1 | | :检测前背景 | | cls | | FOR /L %%S IN (1,1,5) Do echo. | | Echo %S%你的点阵字的前景为[%前景%],背景为[%背景%] | | echo. | | Echo %S%注意:文档中的 前背景字符 的全半角要一致。 | | FOR /L %%S IN (1,1,4) Do echo. | | Echo %S%如果是请[直接回车],如果不是请按顺序输入你的前景与背景. | | FOR /L %%S IN (1,1,3) Do echo. | | SET /P 请输入=%S%请确认: | | if /i Not "%请输入%" == "" ( | | set 前景=!请输入:~0,1! | | set 背景=!请输入:~1,1! | | Goto 检测前背景 | | ) | | | | | | Rem 主体开始↓ | | Set 循环次数=1 | | set 循环次数编码=1 | | cls | | FOR /L %%S IN (1,1,11) Do echo. | | Echo %S%%S%%S%正在转换 请稍后....... | | for /f "tokens=*" %%i in ('type "%1"') do ( | | set Line=%%i | | if Not "!Line!" == "!BLine!" ( | | if Not "!需循环编码!" == "" call :替换需循环编码 | | call :获取当前行编码 | | ) else ( | | If "!开始行数!" == "" Set 开始行数=!行数! | | Set /a 循环次数=!循环次数!+1 | | set /a 循环次数编码=!循环次数编码!+1 | | if "!需循环编码!" == "" Call :获取需循环编码 | | ) | | set BLine=%%i | | set /a 行数=!行数!+1 | | ) | | for %%I in (%1) do ( | | FOR /L %%S IN (1,1,2) Do echo.>>"%%~dI%%~pI%%~nI_点阵编码.txt" | | echo %编码%>>"%%~dI%%~pI%%~nI_点阵编码.txt" | | cls | | FOR /L %%S IN (1,1,11) Do echo. | | Echo %S%%S%%S% 转换 已顺利完成! | | FOR /L %%S IN (1,1,5) Do echo. | | echo %S%编码已存入 "%%~dI%%~pI%%~nI_点阵编码.txt" 按任意键退出...&pause>nul&Exit | | ) | | Exit | | | | | | :获取前背景 | | for /f "tokens=*" %%i in ('type "%1"') do ( | | set "str=%%i" | | if not defined 背景 set 背景=!str:~,1! | | call,set 前景=%%str:!背景!=%% | | if defined 前景 (set "前景=!前景:~,1!"&goto :eof) | | ) | | goto :eof | | | | :获取需循环编码 | | if "%已执行过一次%" == "Y" (Set /a 开始行数=%开始行数%-%循环次数%+2&set /a 循环次数编码=%循环次数编码%+1) Else (Set 已执行过一次=Y) | | For /F "tokens=%开始行数% delims=%换行符%" %%c in ("%编码%") do Set 需循环编码=%%c | | GOTO :EOF | | :替换需循环编码 | | set 编码=!编码:%换行符%%需循环编码%%换行符%=! | | set 编码=%编码%%换行符%%循环符% %循环次数编码%%需循环编码%%换行符% | | set 开始行数= | | set 需循环编码= | | set 循环次数编码= | | GOTO :EOF | | | | :获取当前行编码 | | if Not "%本次负编码%" == "" set 编码=%编码%%本次正编码% | | if Not "%本次正编码%" == "" set 编码=%编码%%本次负编码% | | set 本次正编码=&set 本次负编码= | | set 本次列数=0&set 下个列数=0 | | set 本次字符=&set 下个字符= | | | | :继续获取 | | set 本次字符=!Line:~%本次列数%,1! | | set /a 本次列数=%本次列数%+1 | | set 下个字符=!Line:~%本次列数%,1! | | if Not "%本次字符%" == "%前景%" ( | | set /a 本次正编码=%本次正编码%+1 | | if not "%编码%" == "%编码%%本次负编码%" Set 编码=%编码%%本次负编码% &set 本次负编码= | | ) else ( | | | | if Not "%本次字符%" == "%背景%" ( | | set /a 本次负编码=%本次负编码%-1 | | if Not "%编码%" == "%编码%%本次正编码%" Set 编码=%编码%%本次正编码% &set 本次正编码= | | ) | | ) | | | | if "%本次字符%" == "" ( | | set 编码=%编码%%换行符%&Goto :EOF | | ) else ( | | Goto 继续获取 | | ) | | COPY |
本来还想 发几个 示例的 但是字数受限啊 呵呵
链接: https://pan.baidu.com/s/1l-AmzZrZ2ejcGHVjNA3djA?pwd=wpvm |