中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 连续百分号的问题 上一主题 | 下一主题
nayezi
初级用户





积分 48
发帖 20
注册 2007-10-17
状态 离线
『楼 主』:  连续百分号的问题

@echo  ┌────────────────────────────────────────────┐
@echo  │ %a% %b%%%%space%
@echo  └────────────────────────────────────────────┘
@echo off
这是我随便截取的一个进度条的代码片断,刚学批处理不久,看到很多地方出现连续%(我指的是多于2个)。请问连续百分号具体有什么用法?在论坛里找也只能找到下列关于百分号用法的说明:
① 两个连续的%表示在预处理中脱为一个%。
② 批处理中,在for语句的in子句之前,连续两个%紧跟一个字符(可以是字母、数字和一些特定字符),表示指定一个循环或者遍历指标变量。
③ 批处理中,在for语句中,使用与in之前指定的指标变量相同的串,表示引用这个指标变量。
   第二点和第三点我都懂,难道我提到的问题和第一点相关?请高手帮忙解答,最好有例子。

[ Last edited by nayezi on 2007-10-20 at 06:00 PM ]

2007-10-20 17:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  

@echo off
set 一=1
set 二=2
set 三=3
echo %一%%二%%三%
echo 当前系统目录%windir%
pause



第一高手    第二高手

2007-10-20 18:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nayezi
初级用户





积分 48
发帖 20
注册 2007-10-17
状态 离线
『第 3 楼』:  

楼上误会了,我说的是连续的,你举这个例子我能看懂。但还是谢谢,还请大家帮忙解答下。相关代码我一时半会也找不到,我说的连续百分号是形如%%%%%a%这样的情况!

2007-10-20 19:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nayezi
初级用户





积分 48
发帖 20
注册 2007-10-17
状态 离线
『第 4 楼』:  

如求硬盘剩余空间BAT代码:
@echo off
setlocal enabledelayedexpansion

:Main
cls
set /a num2=1024*1024
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    set num1=0
    set num3_str=
    set num4=
    for /f "tokens=3" %%j in ('dir /-c %%i:\ 2^>nul') do set num1=%%j
    if not "!num1!"=="0" (
        call :loop
        for /f "delims=0 tokens=*" %%k in ("!num3_str!") do set num3_str=%%k
        echo.
        echo        %%i 盘剩余空间为 !num3_str! MB
        echo.
    )
)
pause
goto Main

:loop
:: 求商
set /a num3=%num4%%num1:~0,1%/%num2%
:: 求商序列
set num3_str=%num3_str%%num3%
:: 求余
set /a num4=%num4%%num1:~0,1%%%%num2%
if %num4% equ 0 set num4=
set num1=%num1:~1%
if not "%num1%"=="" goto loop
goto :eof
求余跳转里出现的%num4%%num1:~0,1%%%%num2%里包含4个连续百分号。请高手解释下连续百分号用法。这个例子有点牵强,但却代表了我的疑惑。

2007-10-20 19:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 5 楼』:  

@echo off
set /a a=100+20%
echo 算术题100+20%%=%a%对吗?
pause

看这个例子
绿的%是算术运算符
红的%是传递下一个%为显示符号



第一高手    第二高手

2007-10-20 22:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: