16

I need to create 1000 folders numbered 000 to 999 inside a directory. How can I do this using cmd (i.e. the Windows command line)?

3
  • It's problems like these I usually point people towards python for. Windows' command line is far from powerful, IMO it needs something to supplement it.
    – Phoshi
    Oct 19, 2010 at 21:46
  • 1
    I just need to do it once, dont wanna install python just for that...
    – user11955
    Oct 19, 2010 at 21:47
  • 1
    Nah, you'll keep the Python around for other things ;) Oct 19, 2010 at 21:52

2 Answers 2

32
for /l %i in (0,1,9) do md 00%i
for /l %i in (10,1,99) do md 0%i
for /l %i in (100,1,999) do md %i

Explanation from the documentation (i.e. type for /? at the command prompt):

Runs a specified command for each file in a set of files.

FOR %variable IN (set) DO command [command-parameters]

  %variable  Specifies a single letter replaceable parameter.
  (set)      Specifies a set of one or more files.  Wildcards may be used.
  command    Specifies the command to carry out for each file.
  command-parameters
             Specifies parameters or switches for the specified command.

...

FOR /L %variable IN (start,step,end) DO command [command-parameters]

    The set is a sequence of numbers from start to end, by step amount.
    So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
    generate the sequence (5 4 3 2 1)
4
  • 2
    Is this a foreign tongue of some sort? Whatever, it works great! Thanks!
    – user11955
    Oct 19, 2010 at 21:58
  • Awesome! I just tried it. Would you mind explaining the syntax or giving a link to an explanation? Jan 27, 2015 at 15:52
  • 1
    @ChristopherBottoms: I hope you have already figured the syntax out. but in case you still need it, go to cmd window and type for /?
    – Codism
    Sep 28, 2015 at 5:03
  • 1
    phenomenal answer! Oct 29, 2018 at 17:10
-1
@ECHO OFF && CLS

SET /P x=Insert the name of the place: 
SET /P y=Insert de number of the records: 

SET /A start=1
SET /A z=y+1

REM start the loop
:MKDIR

REM make the directory
MKDIR %x%"__"%start%

REM increment by 1
SET /A start=start+1

REM if we're at the end, return
IF %start%==%z% (GOTO :EOF) ELSE (GOTO :MKDIR)
2
  • It works as a .bat file
    – NeoMati
    Jul 5, 2017 at 7:30
  • it doesn't work. The OP wants names with 0 prefix (000-999), and he wants numbers only without any prefix. Your code produces numbers without 0 prefix, and you also added strange prefix. For example if name of the place is abc then you create abc"__"0, abc"__"1... abc"__"10... abc"__"999
    – phuclv
    Jul 5, 2017 at 9:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .