2015-05-19 32 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

相關問題