Как пакетно создать диапазон папок (000-999) в Windows?

16

Мне нужно создать 1000 папок с номерами от 000 до 999 внутри каталога. Как я могу сделать это с помощью cmd(то есть командной строки Windows)?

user11955
источник
Именно на такие проблемы я обычно обращаю внимание людей на python. Командная строка Windows далеко не мощная, IMO нужно что-то дополнить.
Phoshi 19.10.10
1
Мне просто нужно сделать это один раз, не хочу устанавливать python только для этого ...
user11955 19.10.10
1
Нет, ты будешь держать Питона для других вещей;)
Игнасио Васкес-Абрамс

Ответы:

28
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

Объяснение из документации (т.е. введите for /?в командной строке):

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)
Codism
источник
1
Это какой-то иностранный язык? Как бы то ни было, это прекрасно работает! Благодарность!
user11955 19.10.10
Потрясающие! Я только что попробовал это. Не могли бы вы объяснить синтаксис или дать ссылку на объяснение?
Кристофер Боттомс
1
@ChristopherBottoms: Я надеюсь, что вы уже поняли синтаксис. но если вам все еще это нужно, перейдите в окно cmd и введите /?
Кодизм
феноменальный ответ!
Brainmaniac
-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)
NeoMati
источник
Он работает как файл .bat
NeoMati
это не работает ОП хочет имена с 0префиксом (000-999), и ему нужны только цифры без префикса. Ваш код производит числа без префикса 0, и вы также добавили странный префикс. Например, если название места, abcто вы создаете abc"__"0, abc"__"1... abc"__"10...abc"__"999
phuclv