中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-14 17:23
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 用批处理模拟搞笑开机画面
可打印版本  16,597 / 52
第16楼 3742668 发表于 2006-05-16 19:53
荣誉版主 发帖 718 积分 2,013

还有版主 下面代码为什么 只显示 b%%而不是123? 变量不可以堪套吗?
CODE:
--------------------------------------------------------------------------------

set a=123456789
set b=3
echo %a:~0,%b%%


这就是为什么要用setlocal ENABLEDELAYEDEXPANSION来启用延时的环境变量的原因。当然,并不是说不启用延时的环境变量就不能实现变量的嵌套,比如用显示命令的叠加来转换:
第17楼 doscc 发表于 2006-05-16 20:45
中级用户 发帖 93 积分 256 来自 广东
谢谢了
第18楼 bagpipe 发表于 2006-05-17 11:23
银牌会员 发帖 425 积分 1,144 来自 北京
延时是采用3742668兄的代码,不过效果我觉得不怎么好
@echo off
setlocal enabledelayedexpansion
set /a b=81
set a=">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>================================================================================"


:back
cls
for /l %%i in (1,1,20) do @echo.
echo Loading Windows 2000...
set /a b-=1
echo !a:~%b%,80!
if !b! == 1 goto :eof
call :delay 80
goto back


:delay
set /a num=num + 1
if %num% geq %1 (set num=) && goto :eof
goto delay
第19楼 maya0su 发表于 2006-07-24 16:25
中级用户 发帖 131 积分 241

1.jpg为有@echo off 的结果!
2.jpg为没有@echo off的结果!
本来的系统的winxp sp1 !:o

附件
1.JPG (95.48 KiB)
2.JPG (60.48 KiB)
第20楼 maya0su 发表于 2006-07-26 02:59
中级用户 发帖 131 积分 241
现在在SP2的环境下测试,情况依旧!
第21楼 voiL 发表于 2006-07-27 05:22
中级用户 发帖 189 积分 384
XP SP2运行正常.

附件
111.JPG (9.62 KiB)
第22楼 my3439955 发表于 2006-10-02 03:49
中级用户 发帖 99 积分 272
基于以上诸位的探讨
我来给个总结性的发言
批处理如下

第23楼 gzdx0615 发表于 2006-10-03 09:08
新手上路 发帖 3 积分 10
Originally posted by my3439955 at 2006-10-2 03:49:
基于以上诸位的探讨
我来给个总结性的发言
批处理如下

第24楼 my3439955 发表于 2006-10-05 22:28
中级用户 发帖 99 积分 272
不明白楼上的意思
是不是说最后屏幕的闪烁?
第25楼 bg 发表于 2006-10-08 23:43
初级用户 发帖 34 积分 118
我写的,个人感觉还好。
@echo off
color 1f
title.
mode con lines=10
rem 进度条 ▉▉▉▉▉
set work=0
set n=0
set mo=0
set number=0
rem all是总数
set all=60
set time=%all%
:show

:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check

:2

cls
echo 进度: %n% / %all% 剩余时间:%time%秒
echo.
echo.
echo 完成 %work% %%%
echo.
if not "%num%"=="" echo %num%
if not "%num%"=="" echo %num%

if %work%==100 goto end

ping 127.1 -n 3 >nul
set /a n=%n%+1
set /a time=%all%-%n%
set /a work=(%n%)*100/(%all%)
set /a number=%work%/3
set /a number=%number%+1
goto show
endlocal

:end
endlocal
pause>nul
第26楼 weilong888 发表于 2006-10-09 01:01
银牌会员 发帖 548 积分 1,270
很有意思的,试了一下,真的可行。
第27楼 h2o 发表于 2006-10-09 10:42
初级用户 发帖 18 积分 44
太精彩了!!!
第28楼 vkill 发表于 2006-10-09 21:51
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by bg at 2006-10-8 23:43:
@echo off
color 1f
title.
mode con lines=10
rem 进度条 ▉▉▉▉▉
set work=0
set n=0
set mo=0
set number=0
rem all是总数
set all=60
set time=%all%
:show

:check
if %num ...

很好哈~正想要这个的
第29楼 electronixtar 发表于 2006-11-04 11:46
铂金会员 发帖 2,672 积分 7,493
第30楼 vkill 发表于 2006-11-05 05:39
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
就是,晕,抄也不写出处,bs
上一页  1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023