[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[游戏娱乐] 批处理点阵编码生成、解释器穿插式被动叠加技术

功能介绍:
  1.                               ▓▓▓
  2.                                ▓▓▓
  3.                                ▓▓
  4.                                ▓▓
  5.                                ▓▓
  6.                                ▓▓  ▓
  7.                                ▓▓▓▓▓▓
  8.                             ▓▓▓▓▓▓
  9.                   ▓▓▓          ▓▓
  10.                    ▓▓▓         ▓▓
  11.                     ▓▓▓        ▓▓▓▓▓▓▓▓▓▓▓
  12.                             ▓▓▓▓▓▓▓▓▓▓
  13.                         ▓▓▓▓▓▓
  14.                             ▓     ▓▓
  15.                       ▓     ▓▓     ▓▓▓
  16.                       ▓     ▓▓      ▓▓▓
  17.                      ▓     ▓▓ ▓      ▓▓
  18.                     ▓▓    ▓▓  ▓▓
  19.                     ▓    ▓▓   ▓▓▓▓▓▓
  20.                    ▓▓         ▓▓  ▓▓▓
  21.                   ▓▓▓        ▓▓   ▓▓
  22.                   ▓▓        ▓▓▓   ▓▓
  23.                 ▓▓▓▓        ▓▓▓▓ ▓▓
  24.                  ▓▓        ▓▓   ▓▓▓
  25.                  ▓▓       ▓▓    ▓▓▓▓
  26.                         ▓▓     ▓▓ ▓▓▓
  27.                        ▓▓     ▓▓   ▓▓▓▓▓
  28.                       ▓      ▓▓      ▓▓▓▓▓▓▓
  29.                             ▓         ▓▓▓▓▓▓▓▓
  30.                           ▓▓
  31. 比如 上面的 这个点阵字 用 "点阵编码_生成器.bat" 转换后的代码为:
  32. 编码:
  33. 30 -3 / 31 -3 /# 3 31 -2 / 31 -2 2 -1 / 31 -6 / 28 -6 / 18 -3 10 -2 / 19 -3 9 -2 / 20 -3 8 -11 / 28 -10 / 24 -6 / 28 -1 5 -2 / 22 -1 5 -2 5 -3 / 22 -1 5 -2 6 -3 / 21 -1 5 -2 1 -1 6 -2 / 20 -2 4 -2 2 -2 / 20 -1 4 -2 3 -6 / 19 -2 9 -2 2 -3 / 18 -3 8 -2 3 -2 / 18 -2 8 -3 3 -2 / 16 -4 8 -4 1 -2 / 17 -2 8 -2 3 -3 / 17 -2 7 -2 4 -4 / 24 -2 5 -2 1 -3 / 23 -2 5 -2 3 -5 / 22 -1 6 -2 6 -7 / 28 -1 9 -8 / 26 -2 /
复制代码
转换后的代码 用 "点阵编码_解释器.bat" 就能还原成 上面的点阵字

感觉挺过瘾的 (此套代码花了我两天时间,因该没BUG了)

代码中 反复利用到的批处理技巧有:
1.变量的延迟
2.穿插式被动叠加技术 (大概很少人用吧 但是作用却很大)
3.计算代码 地址的偏移
4.叠加压缩代码技术
5.还有.....  自己看 记不太清楚了(一些小技巧)

★.本代码编写格式是我一向喜欢用的模块形式 所以有兴趣的朋友 可以很容易的加入到 自己的作品当中

当用大大的 点阵字 来提示用户操作时 用户是种什么感觉? (应该会很过瘾吧! 哈哈)

注:本套代码 运行时 几乎不占CPU 效率很高


欢迎大家测试...


以下是两个文件的代码,
压缩包里附有 示例 与我推荐的两个在线点阵字生成网址


点阵编码_生成器.bat
  1. @Echo off&color a
  2. Title ☆Title 点阵编码生成器 -By 凌枫工作组  Q群:35962310-
  3. setlocal EnableDelayedExpansion
  4. set S=    
  5. Rem 设置 ↓
  6. SET 换行符=/
  7. SET 循环符=#
  8. Rem 设置↑
  9. :输入文档路径
  10. If "%1" == "" (
  11. FOR /L %%S IN (1,1,7) Do echo.
  12. Echo %S%%S%请将你要转换的点阵字本文文档 直接拖到本批处理上.
  13. FOR /L %%S IN (1,1,5) Do echo.
  14. Echo %S%%S%请在没有空格 与 特殊字符的 路径下操作.
  15. pause>nul&Exit
  16. )
  17. call :获取前背景 %1
  18. :检测前背景
  19. cls
  20. FOR /L %%S IN (1,1,5) Do echo.
  21. Echo %S%你的点阵字的前景为[%前景%],背景为[%背景%]
  22. echo.
  23. Echo %S%注意:文档中的 前背景字符 的全半角要一致。
  24. FOR /L %%S IN (1,1,4) Do echo.
  25. Echo %S%如果是请[直接回车],如果不是请按顺序输入你的前景与背景.
  26. FOR /L %%S IN (1,1,3) Do echo.
  27. SET /P 请输入=%S%请确认:
  28. if /i Not "%请输入%" == "" (
  29. set 前景=!请输入:~0,1!
  30. set 背景=!请输入:~1,1!
  31. Goto 检测前背景
  32. )
  33. Rem 检测前背景↑
  34. Rem 主体开始↓
  35. Set 循环次数=1
  36. set 循环次数编码=1
  37. cls
  38. FOR /L %%S IN (1,1,11) Do echo.
  39. Echo %S%%S%%S%正在转换 请稍后.......
  40. for /f "tokens=*" %%i in ('type "%1"') do (
  41. set Line=%%i
  42. if Not "!Line!" == "!BLine!" (
  43.   if Not "!需循环编码!" == "" call :替换需循环编码
  44.   call :获取当前行编码
  45. ) else (
  46.   If "!开始行数!" == "" Set 开始行数=!行数!
  47.   Set /a 循环次数=!循环次数!+1
  48.   set /a 循环次数编码=!循环次数编码!+1
  49.   if "!需循环编码!" == "" Call :获取需循环编码
  50. )
  51. set BLine=%%i
  52. set /a 行数=!行数!+1
  53. )
  54. for %%I in (%1) do (
  55. FOR /L %%S IN (1,1,2) Do echo.>>"%%~dI%%~pI%%~nI_点阵编码.txt"
  56. echo %编码%>>"%%~dI%%~pI%%~nI_点阵编码.txt"
  57. cls
  58. FOR /L %%S IN (1,1,11) Do echo.
  59. Echo %S%%S%%S%  转换 已顺利完成!
  60. FOR /L %%S IN (1,1,5) Do echo.
  61. echo %S%编码已存入 "%%~dI%%~pI%%~nI_点阵编码.txt"  按任意键退出...&pause>nul&Exit
  62. )
  63. Exit
  64. Rem 主体结束↑
  65. :获取前背景
  66. for /f "tokens=*" %%i in ('type "%1"') do (
  67.     set "str=%%i"
  68.     if not defined 背景 set 背景=!str:~,1!
  69.     call,set 前景=%%str:!背景!=%%
  70.     if defined 前景 (set "前景=!前景:~,1!"&goto :eof)
  71. )
  72. goto :eof
  73. :获取需循环编码
  74. if "%已执行过一次%" == "Y" (Set /a 开始行数=%开始行数%-%循环次数%+2&set /a 循环次数编码=%循环次数编码%+1) Else (Set 已执行过一次=Y)
  75. For /F "tokens=%开始行数% delims=%换行符%" %%c in ("%编码%") do Set 需循环编码=%%c
  76. GOTO :EOF
  77. :替换需循环编码
  78. set 编码=!编码:%换行符%%需循环编码%%换行符%=!
  79. set 编码=%编码%%换行符%%循环符% %循环次数编码%%需循环编码%%换行符%
  80. set 开始行数=
  81. set 需循环编码=
  82. set 循环次数编码=
  83. GOTO :EOF
  84. :获取当前行编码
  85. if Not "%本次负编码%" == "" set 编码=%编码%%本次正编码%
  86. if Not "%本次正编码%" == "" set 编码=%编码%%本次负编码%
  87. set 本次正编码=&set 本次负编码=
  88. set 本次列数=0&set 下个列数=0
  89. set 本次字符=&set 下个字符=
  90. :继续获取
  91. set 本次字符=!Line:~%本次列数%,1!
  92. set /a 本次列数=%本次列数%+1
  93. set 下个字符=!Line:~%本次列数%,1!
  94. if Not "%本次字符%" == "%前景%" (
  95.   set /a 本次正编码=%本次正编码%+1
  96.   if not "%编码%" == "%编码%%本次负编码%" Set 编码=%编码%%本次负编码% &set 本次负编码=
  97.   ) else (
  98.   
  99.   if Not "%本次字符%" == "%背景%" (
  100.    set /a 本次负编码=%本次负编码%-1
  101.    if Not "%编码%" == "%编码%%本次正编码%" Set 编码=%编码%%本次正编码% &set 本次正编码=
  102.   )
  103. )
  104. if "%本次字符%" == "" (
  105.   set 编码=%编码%%换行符%&Goto :EOF
  106.   ) else (
  107. Goto 继续获取
  108. )
复制代码

本来还想 发几个 示例的 但是字数受限啊 呵呵

链接: https://pan.baidu.com/s/1l-AmzZrZ2ejcGHVjNA3djA?pwd=wpvm
1

评分人数

这个怎么用呢?
      将TXT文本拖进去了,批处理就自动关闭。打开TXT文本啥也没改动

TOP

呵呵  不错   谢谢分享     慢慢看 好东西。下来研究下。

TOP

各位我怎么用不来啊

TOP

回复 10楼 的帖子

这个厉害 哈哈
学习了

TOP

来个更快速和更高压缩比的。

生成器
  1. @Echo off&color a&setlocal EnableDelayedExpansion
  2. set echo=        
  3. if defined %1 echo;echo;&(FOR /L %%S IN (1,1,6) Do echo.
  4. echo %echo%       生成器
  5. Echo %echo%请将你要转换的点阵字本文文档 直接拖到本批处理上.
  6. FOR /L %%S IN (1,1,5) Do echo.
  7. Echo %echo%请在没有空格 与 特殊字符的 路径下操作.
  8. pause>nul&Exit)
  9. for /f "delims=" %%a in (%~1) do (
  10. set str=%%a
  11. if not defined 背景 set 背景=!str:~,1!
  12. for %%b in ("!背景!") do (set str=!str:%%~b=!)
  13. if defined str set 前景=!str:~,1!&goto :ok
  14. )
  15. :ok
  16. set "asc=01234567890ABCDE'FGHI@#$.abcdefghijklmnopqrstuvwxyz"
  17. for /l %%a in (0,1,50) do (set #!asc:~%%a,1!=%%a&set $%%a=!asc:~%%a,1!)
  18. set dec=
  19. for /f "delims=" %%a in (%~1) do (
  20. set str=%%a
  21. set str=!str:%背景%=0!
  22. set str=!str:%前景%=1!
  23. set str=!str:01=0 1!
  24. set str=!str:10=1 0!
  25. if "!str:~,1!" equ "1" (set dec=!dec! `) else (set dec=!dec! )
  26. for %%b in (!str!) do (
  27.   set var=!asc!%%b
  28.   set /a vum=#!var:~-51,1!
  29.   for %%c in (!vum!) do (set dec=!dec!!$%%c!)
  30. )
  31. )
  32. echo !背景!!前景!!dec!>%~dp1\bendec.txt
  33. pause
复制代码


解释器
  1. @Echo off&color a&setlocal EnableDelayedExpansion
  2. set echo=        
  3. if defined %1 echo;echo;&(FOR /L %%S IN (1,1,7) Do echo.
  4. echo %echo%     解释器
  5. Echo %echo%请将你要转换的点阵字本文文档 直接拖到本批处理上.
  6. FOR /L %%S IN (1,1,5) Do echo.
  7. Echo %echo%请在没有空格 与 特殊字符的 路径下操作.
  8. pause>nul&Exit)
  9. set "asc=01234567890ABCDE'FGHI@#$.abcdefghijklmnopqrstuvwxyz"
  10. for /l %%a in (0,1,50) do (set #!asc:~%%a,1!=%%a)
  11. for /l %%a in (1,1,10) do (set spac=!spac!     )
  12. Mode con cols=127 lines=44
  13. set #前景=背景&set #背景=前景
  14. for /f "delims=" %%a in (%~1) do (
  15. set str=%%a
  16. for /f "tokens=1,2 delims=*" %%l in ("!str:~0,1!*!str:~1,1!") do (set 前景=!spac: =%%l!&set 背景=!spac: =%%m!)
  17. set str=!str:~2!
  18. for %%b in ("!str: =" "!") do (
  19.   set str=%%~b
  20.   if "!str:~,1!" equ "~" (set 当前=背景) else (set 当前=前景)
  21.   set num=!asc!!str!
  22.   set /a vum=#!num:~-50,1!
  23.   for /l %%c in (0,1,!vum!) do (
  24.    for %%d in ("!str:~%%c,1!") do (
  25.     for /f "tokens=1,2" %%e in ("!当前! !#%%~d!") do (
  26.      set /p=!%%e:~,%%f!<nul
  27.      set 当前=!#%%e!
  28.     )
  29.    )
  30.   )
  31.   echo;
  32. )
  33. )
  34. pause
复制代码

TOP

回复 7楼 的帖子

按你的 改了  谢谢


同时修正了 一个 BUG

TOP

收藏了,有空再好好看看。

TOP

楼主可能没明白我三楼的意思(*^__^*)
还有获取前背景这样是不是要好点
  1. @echo off&setlocal enabledelayedexpansion
  2. call :前背景 %1
  3. echo --%前景%--%背景%--&pause&exit
  4. :前背景
  5. for /f "usebackq delims=" %%i in ("%~1") do (
  6.     set "str=%%i"
  7.     if not defined 背景 set 背景=!str:~,1!
  8.     call,set 前景=%%str:!背景!=%%
  9.     if defined 前景 (set "前景=!前景:~,1!"&goto :eof)
  10. )
  11. goto :eof
复制代码

TOP

回复 4楼 的帖子

现已 修正!

是这段代码 所致

"
:获取前景
if "%前景%" == "%背景%" (
        set "前景=!Line:~%列数%,1!"
        if "!前景!" == "" set 列数=&GOTO :EOF
        set /a 列数=%列数%+1
        goto 获取前景
)
GOTO :EOF
"

TOP

我这里貌似运行不正常,空格都没掉了
PS:Vista系统
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

回复 3楼 的帖子

没这个问题啊  你仔细看看 代码

TOP

不错,不过生成器有个小小的问题
:检测前背景
......
SET /P 请输入=%S%请确认:
if /i Not "%请输入%" == "" (
...
这句前应该加set "请输入=",清空这个变量,要不无法改变前景色与背景色,会变成死循环运行不到下面去。

TOP

呵呵  不错   谢谢分享     慢慢看

TOP

返回列表