Если упрощенно, то можно так:
@echo off
for /l %%a in (1,1,12) do for /l %%b in (1,1,31) do ( md %%a.%%b\wb 2>nul & md %%a.%%b\zaliv 2>nul)
Но здесь принимается, что в каждом месяце 31 день, а так же не добавляется слева не значащий 0 для расширения номера месяца/дня до 2 символов.
По простому расширить до двух символов можно используя не
for /l
, а обычный
for %%a in (01 02 03 04 05 ...) do
Можно, конечно написать функцию, расширяющую строку до заданной длины нужным символом, но лень возиться. Можете погуглить по "cmd padding string", на сером форуме и ру-борде толковые ветки по батникам.
Задать точное количество дней в месяце можно, используя заранее определенные списки дней для каждого месяца, что-нибудь типа такого:
setlocal enabledelayedexpansion
set "mday1=01 02 03 04 05 ..." :: в mday1 - 1 - это номер месяца (январь)
set "mday2=01 02 03 04 05 ..."
:: и так далее до mday12
...
for %%b in (!mday%%a!) do ...
Если не заморачиваться с расширением номеров до двух знаков, то в mdayN можно задавать просто максимальный номер дня и использовать в
for /l %%b in (1,1,!mday%%a!) do