2015-05-19 66 views
0

在办公室里,我们有一个强烈而明确的文件结构,我必须创建数百个具有相同名称但最后一个数字不同的目录。在批处理中创建具有不同名称的新文件

directory0001
directory0002
...
directory0324

这是我做了什么:

SET B=0001 
SET C=0324 

:while1 

IF NOT %B%==%C% 
(
echo "first loop" 
SET COUNTER=0 
IF NOT %COUNTER%=1 
(
echo "Secoond loop" 
mkdir "C:\pathfile\directory00"%B% 
SET COUNTER==1 
) 
else() 
SET B=%B%+1 
goto :while1 
) 
else 
(
) 

我不知道我是否正确地使用运营商与否,我正在使用我在不同帖子中发现的内容。

-i使用windows终端调试代码,有更好的办法吗?

回答

1

有一个for循环正是这一点,从一个值递增计数终值:

for /L %%i in (1,1,324) do if %%i LEQ 9 (md "C:\pathfile\directory000%i") else if %%i LEQ 99 (md "C:\pathfile\directory00%i") else (md "C:\pathfile\directory0%%i") 

这将在1,增量开始由1,直到达到324。 IF语句仅用于格式化前导零。
编辑: 这是正确的缩进的完整代码,让你(作为一个新手)可以更容易地了解流程:

@echo off 
SETLOCAL ENABLEEXTENSIONS 

REM enable cmd extensions so that mkdir/md will create all intermediate folders 

SET first=1 
SET last=324 

REM numeric extension will be appended with 4 places to this foldername 
SET folder=C:\users\goofy\manydirs\directory 

FOR /L %%i in (%first%,1,%last%) DO (
    IF %%i LEQ 9 (
     mkdir %folder%000%%i 
    ) ELSE IF %%i LEQ 99 (
     mkdir %folder%00%%i 
    ) ELSE IF %%i LEQ 999 (
     mkdir %folder%0%%i 
    ) ELSE (
     mkdir %folder%%%i 
    ) 
) 
+0

谢谢user1016274很清楚的代码,现在我想要做什么。 为什么变量“i”是使用不同的sintax我的意思是之间的差: %第一% %%我 – xarokk

+0

'%i'被一个'FOR'循环中用作变量来自列表中的哪一个值被分配。在批处理文件中,您必须加倍'%',所以'%% i'。 – user1016274

+0

然后总是说我在一个循环中声明了一个变量,我是否应该这样做%% i,并且%i%?之外是吗? – xarokk

相关问题