中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 10:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于bat的set命令 查看 904 回复 1
楼 主 关于bat的set命令 发表于 2007-02-11 09:43 ·  中国 江苏 徐州 电信
初级用户
积分 36
发帖 10
注册 2007-02-10 06:32
19年会员
UID 79139
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
set b=\-/-
:b
for /l %%i in (0,1,32) do call :a %%i
cls
goto :b
:a
set/a a=%1%%4
set/p=!b:~%a%,1!<nul
ping/n 2 127.1>nul
goto :eof
倒数三四两行如何解释?(我以前没见过这种写法)知道的说下,谢谢

[ Last edited by hankee on 2007-2-11 at 08:54 PM ]
2 发表于 2007-02-11 10:00 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
set/a a=%1%%4
%1是a 的参数,从上面看call :a %%i
%1就是0~32

%%4就是除4去余数~所以返回是0,1,2,3

a现在是0,1,2,3
set/p=!b:~%a%,1!<nul

/p是输入的意思,输入: 从b的a+1个字符开始1个字符,那么就是
0 1 2 3分别对应\ - / -




ping/n 2 127.1>nul
延时2秒钟
论坛跳转: