标题: [特效代码] 批处理特效之多行回退擦除小动画 [打印本页]
作者: batman 时间: 2013-8-22 19:33 标题: 批处理特效之多行回退擦除小动画
本帖最后由 batman 于 2013-8-22 19:45 编辑
- @echo off&setlocal enabledelayedexpansion
- mode con cols=45 lines=8&title 大侠@之三招制敌
- rem 因论坛处理不了制表符,请将下面tab=后面的空格替换为制表符后运行,切记。。。
- set "tab= "
- for /l %%a in (1,1,44) do set "tg=!tg!"&set "k=!k! "
- for /f "delims=:" %%a in ('findstr /n "^exit" "%~0"') do set /a n=%%a
- for /f "skip=%n% tokens=1,2 delims=:" %%a in ('findstr /n .* "%~0"') do (
- if "!m!" equ "6" (
- for /l %%c in (1,1,5000) do echo,>nul
- for /l %%c in (1,1,6) do (
- 2>nul echo,%tab%%tg:~,12%
- set /p=%k%%tg%<nul
- )
- set /a m=0
- )
- echo,%%b&set /a m+=1
- )
- pause>nul
- exit
-
- @:怎么着? #:想和你见个高下!
-
- @ #
- <|~ \|>
- >\ < \
-
- @:三招叫你趴下! #:我好怕怕。。。
-
- @ #
- ~)- ~ )^
- /> <|
-
- #:看打,哈! @:找死!
-
- @ #
- </- ~\^
- /> <\
-
- #:黑虎掏心! @:呀。。。
-
- @/ #
- {\~ \>
- |\ <\
-
- @:泰山压顶! #:啊!
-
- @ #
- ~(\~)^
- />/|
-
- @:潜龙出海! #:啊!
-
- @_#
- /\~)^
- /| <L
-
- @:佛山无影腿! #:操!
-
- @ \#
- ~(/~/
- > <\
-
- #:操!!
-
- @ \#
- ~(- ~/
- >\ <L
-
- #:操!!!
-
- @
- ~|- ~_#
- |\ /L \
-
- #:可恶...
-
- @ #
- ~|- ~/\
- |\ /L
-
- @:还来? #:老大,别打了!
-
- \@
- |~ \#__
- >\ | /L
-
- #:老大,我错了... @:哈哈!
-
- @
- <|> #__
- |\ /|<\
复制代码
作者: miracle0 时间: 2013-8-22 21:45
没看懂,可否提示一下?
作者: dos-a 时间: 2023-4-3 14:07
回复 1# batman
大佬我换了制表符也不行啊win10,回退不了,他是直接向上逐行打印的
作者: dos-a 时间: 2023-4-5 15:54
回复 1# batman
大佬麻烦有空回下
作者: HOPE2021 时间: 2023-4-5 17:25
回复 4# dos-a
Win 10 无法使用制表符多行回退,但是可以通过 VT 100 转义来实现相关功能,详见:
https://learn.microsoft.com/zh-cn/windows/console/console-virtual-terminal-sequences
作者: dos-a 时间: 2023-4-6 00:03
回复 5# HOPE2021
ai给的代码但是还是就没用啊
@echo off
setlocal EnableDelayedExpansion
rem 设置 VT100 控制码
set "ESC=["
set "CSI=%ESC%%ESC%["
set "CUU=%CSI%A"
set "CUD=%CSI%B"
rem 输出三行文本
echo Line 1
echo Line 2
echo Line 3
rem 回退两行并输出新文本
echo %CUU%%CUU%New line 1
echo New line 2
endlocal
作者: HOPE2021 时间: 2023-4-8 22:02
回复 6# dos-a
……
ESC字符是不可显示字符(虽然在 Windows 系统下可见),并非方括号,ESC 字符的获取以及简单的应用可以见我的帖子:http://www.bathome.net/viewthread.php?tid=63749
一般来说,对于 ESC 字符的获取可以使用:- :InitVT100
- %= { =%
-
- %= 获取 ESC 字符 =%
-
- Set "ESC="
-
- %= 如果没有定义 ESC 字符,这个过程是为了防止论坛误吞上文的 ESC 字符 =%
- If Not Defined ESC (
-
- For /F "Delims=#" %%_ in ('Prompt #$E# ^& Echo On ^& For %%$ in ^(1^) Do DosKey') Do Set "ESC=%%_"
-
- )
-
- %= } =%
- @Goto :Eof
复制代码
所以 AI 的代码可以改成:- @echo off
- setlocal EnableDelayedExpansion
-
- rem 设置 VT100 控制码
- call :GetESC
- set "CSI=%ESC%["
- set "CUU=%CSI%A"
- set "CUD=%CSI%B"
-
- rem 输出三行文本
- echo;Line 1
- echo;Line 2
- echo;Line 3
-
- rem 回退两行并输出新文本
- echo;%CUU%%CUU%New line 1
- echo;New line 2
-
- endlocal
-
- pause
-
- :GetESC
- set "ESC="
- if not defined ESC (
- for /f "delims=#" %%_ in ('prompt #$E# ^& echo on ^& for %%$ in ^(1^) do dosKey') do Set "ESC=%%_"
- )
- @goto :eof
复制代码
作者: dos-a 时间: 2023-4-9 11:40
回复 7# HOPE2021
大佬牛批
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |