批处理符号

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:26:41
@echo off
set disk=cdefghijklmnopqrstuvwxyz
FOR /L %%i IN (0,1,23) DO call echo %%disk:~%%i,1%%
pause

这段代码里面,%%disk:~%%i,1%% 这段code什么意思,还有每个%各是什么作用, ~的作用?

涉及到预处理,具体可以参考willsort的大作。简要分析一下:

预处理前:%%disk:~%%i,1%%
预处理后:%disk:~%i,1%

可以看到两个%%变成一个%。在先后顺序上,应该先扩展%i,接着再对%disk%进行变量延迟。将OFF删除即可看到变化的过程。

%%disk:~%%i,1%%
这是取字符串的意思,取出从第i个字符开始的一个字符
其中i的值从0递增到23
说白了 这里是依次显示出从C到Z得盘符

%%disk:~%%i,1%%
是从前边定义的变量disk里的字符串里依次提取第%%i开始的一个字符出来。