无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: batche
打印 上一主题 下一主题

[分享] 用批处理送大家一个“国庆快乐”

    [复制链接]
跳转到指定楼层
1#
发表于 2023-9-30 21:10:44 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 batche 于 2023-10-1 18:54 编辑

更新:调了一下色,在原来的淡入后又加了闪烁、跳动特效。
  1. @echo off
  2. set "Marx=毛"

  3. If "%1"=="" (reg add HKCU\Console\National_Day /V "FontSize" /T Reg_DWORD /D 0x0006000C /F >nul
  4. Start "National_Day" "%ComSpec%" /C %0 arg & exit) else reg delete HKCU\Console\National_Day /F >nul
  5. Mode Con: Cols=220 Lines=25 & Chcp 437>nul&setlocal EnableDelayedExpansion
  6. for /f %%m in ('cmd/u/cecho !Marx!')do set "Marx=%%m"&set Marx=!Marx:~0,1!!Marx:~0,1!
  7. for /f "delims=#" %%e in ('"Prompt #$e#&for %%$ in (esc) do rem"') do set "esc=%%e["&Set /p=!esc!?25l<nul
  8. set "Chr[1]=0,0,0x0,0x7e48,0x0248,0x0248,0x0488,0x0488,0x0908,0x09fe,0x1008,0x1108,0x1288,0x3c78,0x1010,0x0aa0,0x1450,0x2818,0x0"
  9. set "Chr[2]=0,0,0x7ffe,0x4002,0x4002,0x4ff2,0x4102,0x4102,0x4102,0x4ff2,0x4102,0x4122,0x4132,0x4102,0x5ffa,0x4002,0x4002,0x7ffe,0"
  10. set "Chr[3]=0,0,0x0080,0x0040,0x1fff,0x1000,0x1040,0x0840,0x10e0,0x17ff,0x3040,0x20b0,0x2108,0x6108,0x4204,0x4204,0x8c06,0,0"
  11. set "Chr[4]=0,0,0x0,0x1080,0x1080,0x1080,0x1088,0x5BFC,0x5488,0x5088,0x9088,0x1088,0x1FFE,0x1080,0x1140,0x1120,0x1210,0x140E,0x1804"
  12. set "Chr[5]=0,0,0x0020,0x00F0,0x1F00,0x1000,0x1100,0x1100,0x2104,0x7FFE,0x0100,0x0100,0x0920,0x0910,0x1108,0x210C,0x4504,0x0200,0"
  13. for /l %%l in (1,1,68) do (
  14.     if %%l leq 20 (set /a c=14+%%l*12,ye=%%l*11)
  15.     set /p=%ESC%38;2;!c!;0;0m<nul<nul&set /a sw=%%l%%2
  16.     if %%l gtr 20 (if !sw! equ 1 (set /p=%ESC%38;2;!c!;!ye!;0m<nul) else (
  17.     set /p=%ESC%38;2;!c!;0;0m<nul))
  18.     if %%l equ 68 set /p=%ESC%38;2;!c!;!ye!;0m<nul&set /p=%ESC%48;2;!c!;0;0m<nul&cls
  19.     for /l %%i in (1,1,5) do (
  20.         if %%l equ 21 set "Chr[%%i]=!Chr[%%i]!,0"
  21.         set /a _x=^(%%i-1^)*40+10,_y=5
  22.         for %%_ in (!Chr[%%i]!) do (
  23.              set /a n=1
  24.              set "xy="
  25.              for /l %%l in (1,1,20) do (
  26.                  set /a x=^(%%_^&n^)/n,n*=2
  27.                  set "xy=!x!!xy!"
  28.                  )
  29.              set xy=!xy:1=%Marx%!
  30.              set xy=!xy:0=  !
  31.              set /p=%ESC%!_y!;!_x!H<nul
  32.              echo(!xy!
  33.              set /a _y+=1
  34.        )
  35.        echo,
  36.     )
  37.     if %%l equ 20 timeout /t 1 /NOBREAK >nul 2>nul
  38. )
  39. pause>nul
复制代码

评分

参与人数 5无忧币 +30 收起 理由
享β亻寸木东 + 5 能生成微信二维码吗?牛!!!
plusv + 5 很给力!
wzj168088 + 5 赞一个!
yyz2191958 + 5 楼主高手
sunsea + 10 很给力!

查看全部评分

2#
 楼主| 发表于 2023-10-1 17:13:59 | 显示全部楼层
sunsea 发表于 2023-9-30 23:07
上半部分74,下半部分不认识。

是五角星,没画好。
回复

使用道具 举报

3#
 楼主| 发表于 2023-10-1 17:31:50 | 显示全部楼层
享β亻寸木东 发表于 2023-10-1 16:50
这个真厉害,牛!能生成微信二维码吗?

理论上可以,实际上用这个方法很难实现。

点评

哦,谢谢。。。。。。。  详情 回复 发表于 2023-10-1 20:04
回复

使用道具 举报

4#
 楼主| 发表于 2023-10-4 16:16:45 | 显示全部楼层
kingstonlj 发表于 2023-10-3 22:28
win11显示起来貌似有bug

首先,你应该把脚本保存为ansi编码。然后,在win11下有问题是因为其默认终端变成了wt,而代码中有设置缓冲区、字体大小的部分,只对原来的控制台主机有效。要么直接把默认终端改回去,要么通过修改wt的设置选项或settings.json文件来设置缓冲区、字体大小。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-24 05:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表