中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]********cmd标题栏动画********
作者:
标题: [原创]********cmd标题栏动画******** 上一主题 | 下一主题
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『楼 主』:  [原创]********cmd标题栏动画********


@echo off&setlocal enabledelayedexpansion        %title {s11ss 2007-12-12}%
call :m "www.cn-dos.net" "                               " 4 50
title Press any key to exit...&pause>nul&title %comspec%&exit/b
:m
set s=%~1
set c=%~2
set n=%3
set "d=for /l %%z in (1,1,%4) do cd."
set t=%s%
:c
set t=%t:~1%&set/a l+=1
if not "%t%" equ "" goto :c
for /l %%a in (1,1,%l%) do %d%&title !s:~0,%%a!
for /l %%a in (%l%,-1,1) do %d%&title !s:~0,%%a!
set/a t=%l%-1
for /l %%a in (1,1,%n%) do set "space=!space!%c%"&for /l %%b in (1,1,%t%) do set s%%b%%a=!s:~0,%%b!!space!!s:~%%b,1!
for /l %%a in (1,1,%t%) do for /l %%b in (%n%,-1,1) do %d%&title !s%%a%%b!
title !s!&%d%
for /l %%a in (%t%,-1,1) do for /l %%b in (1,1,%n%) do %d%&title !s%%a%%b!


   此帖被 +15 点积分         点击查看详情   
评分人:【 everest79 分数: +15  时间:2007-12-12 22:00


2007-12-12 17:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 2 楼』:  

高产作家呀,能不能要动画节奏放慢点哈

2007-12-12 22:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 3 楼』:  

哪里哪里。
这句中的最后一个数控制速度:
call :m "www.cn-dos.net" "                               " 4 50

2007-12-12 22:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
shim
初级用户





积分 85
发帖 73
注册 2007-9-23
状态 离线
『第 4 楼』:  

拜读了您的程序,很是佩服,思路很好啊。

请教一个问题,如果我要在此基础上,再添加程序功能,在下面的程序中如果想导入你的程序该怎么实现。也就是象:
set x=y
.....
:1
%x%
象这样,请赐教。

2007-12-12 22:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 5 楼』:  

把包括标签行:m以内的标签行:m的下面所有的行插入到你的批处理文件尾部,再在你的批处理文件中用call :m 参数来调用,记得用exit/b或goto :eof把:m和批处理主体分开。

[ Last edited by s11ss on 2007-12-12 at 11:07 PM ]

2007-12-12 23:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
shim
初级用户





积分 85
发帖 73
注册 2007-9-23
状态 离线
『第 6 楼』:  

好,谢谢!我试试。

2007-12-12 23:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
shim
初级用户





积分 85
发帖 73
注册 2007-9-23
状态 离线
『第 7 楼』:  

按照您的指点,好象不能实现标题栏动画。显示的是!s!,如下图所示。可能是我没有搞对方法,您能举个例子说明一下吗?谢谢!

[ Last edited by shim on 2007-12-12 at 11:48 PM ]

附件 1: cmd.GIF (2007-12-12 23:47, 2.31 K,下载次数: 5)


2007-12-12 23:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 8 楼』:  

不介意把你的代码粘过来吧?

2007-12-13 12:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
shim
初级用户





积分 85
发帖 73
注册 2007-9-23
状态 离线
『第 9 楼』:  

@echo off

color 2f
for /f "delims=" %%i in ("%0") do set cdname=%%~dpi
ECHO.
ECHO.升级程序正在查找升级所必须的系统文件,请稍后......
path %SystemRoot%\system32\wbem;%SystemRoot%\system32\;%cdname%
call s.vbs
for /f "skip=1" %%a in ('wmic logicaldisk where "DriveType=3" get caption') do (
        for /f "delims=" %%_ in ('dir /s/b/a-d %%a\×××.shim 2^>nul') do (if exist "%%_" set ppath=%%~dp_&goto :end)
)
if not defined ppath echo/请确认是否已安装本程序!!!升级程序找不到系统文件,无法完成升级!!!
pause&exit/b

:end
xcopy *.*/s "%ppath%"/y
cls
color 1f
@ECHO OFF
@ECHO OFF
echo    ┢━━━━━━━━━    程 序 提 示 框    ━━━━━━━━━┪
echo    ┃                                                          ┃
echo    ┃         ▓  ▓      ▄■▄ ▄■▄                        ┃
echo    ┃       ▓▓▓▓▓    ▄■▄ ▄■▄                        ┃
ECHO    ┃         ▓  ▓      ■▼■ ■▼■                        ┃
ECHO    ┃      ▓▓▓▓▓▓   ■▼■ ■▼■                        ┃
echo    ┃        ▓  ▓  ▓  ▄▲▄▄▄▲▄       正在操作……     ┃
echo    ┃       ▓   ▓▓ ▓    ▌      ▌                         ┃
ECHO    ┃      ▓ ▓ ▓  ▓ ▓■▲■  ■▲■      谢谢您的使用!   ┃
ECHO    ┃          ▓▓       ■▲■  ■▲■                       ┃
ECHO    ┃                                                          ┃
ECHO    ┃                                                          ┃
echo    ┗━━━━━━━━━━━━━━━━┑  ┍━━━━━━━━━━┛
ECHO                                      │ ∕   
echo                                      │∕
echo                                       ∕
ECHO.
ECHO off
dd 3000
ECHO.    您的程序路径为:%ppath%
ECHO.
dd 3000
ECHO.
ECHO.    正在启动程序,请稍候.....
dd 3000
cd /d "%ppath%"
start ×××.exe                        
dd 3000
ECHO off
ECHO.
ECHO.        -----------====  程序完成!  祝您使用愉快!!! ====-----------
ECHO.
ECHO.
ECHO.请稍后,升级程序将自动退出.....
dd 3000
ECHO Y|DEL "%ppath%"\××.exe
ECHO Y|DEL "%ppath%"\××.exe
exit


上述是我的代码,请赐教该怎么样和你的代码使用即可显示你的标题动画,又能完成我的程序工作?

2007-12-13 14:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 10 楼』:  

只能互相嵌入吧~~~~~~~
bat1代码
bat2代码
bat1代码
bat2代码
.
.
.

2007-12-13 14:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ansipeter
中级用户

替身



积分 269
发帖 130
注册 2007-3-23
状态 离线
『第 11 楼』:  

感觉楼主的代码对于CMD窗口标题栏闪烁效果太抖动,可能是FOR语句延时造成的这种情况,俺也粗略的写了一个,效果稍微好些,但不敢保证,呵呵,没事儿玩玩而已
@echo off&setlocal enabledelayedexpansion
set "b=www.cn-dos.net"
set "k=-"
for /l %%t in (1,1,60) do set "q=!q! "
call:9527
call:9527 %k%
for %%? in (w=w;w,. c=n,-;d o,s=.,n,e;t) do (
call :bagpipe %%? !p!
set p=!p!%%?)
title Code By Ansipeter&goto:eof
:9527
for /l %%a in (1,1,14) do title !b:~0,%1%%a!&ping -n 1 127.1>nul
goto:eof
:bagpipe
for /l %%n in (1,1,60) do title %2!q:~%%n!%1
ping -n 1 -w 100 127.1>nul


   此帖被 +2 点积分    点击查看详情   
评分人:【 shim 分数: +2  时间:2007-12-14 00:39




*讨厌的9527*  
2007-12-13 16:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 12 楼』:  

用for处理,速度可以很快,但太闪了,而且很耗CPU。

而用ping处理,速度不能很快,但不太闪,不很耗CPU。
可以把set "d=for /l %%z in (1,1,%4) do cd."
下加一行set "d=ping -n %4 0 >nul"试试效果。(相应的把50换成1)

[ Last edited by s11ss on 2007-12-13 at 06:43 PM ]

2007-12-13 18:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: