我试图在当前目录中创build目录“01”,“02”,“03”,…,“11”和“12”。 但是由于一个未知的原因,我的填充“0”的函数在for循环中不起作用。
@Echo on SET suffix=12 SET v=0%suffix% SET v=%v:~-2% echo %v% pause (SET suffix=12 SET v=0%suffix% SET v=%v:~-2% echo %v%) pause FOR /L %%q IN (9,1,11) DO ( SET suffixb=%%q SET w=0%suffixb% SET w=%w:~-2% echo %w% ) pause
在批处理文件中,每行或每行块(括号内的代码)被解析,执行,并为下一行/块重复该过程。 在解析阶段,所有的变量读取被删除,在代码开始执行之前被替换为变量中的值。 如果一个变量在行/块内部改变了它的值,那么这个改变的值不能从同一行/块中检索,因为变量读取操作不存在。
通常的解决方法是使用延迟扩展。 启用后,可以将语法从%var%
更改为!var!
,向解析器指示读取操作必须延迟,直到使用该值的命令开始执行。
setlocal enabledelayedexpansion for /l %%a in (101 1 112) do ( set "name=%%a" md "!name:~-2!" )