@Kerson

Создание папок на каждый день с помощью .bat?

Извините, плохо знаком с .bat. Возникла надобность создать 30 папок с название "XX.YY", где X - дата, Y - месяц. При этом первая папка - первый день месяца (01.01), вторая папка - следующий день (01.02). Так же в каждой из таких папок должны находиться еще 2 папки: "wb" и "zaliv". Не совсем понимаю как такое реализовать, надеюсь на вашу помощь.

Буду предельно благодарен за ваше выделенное время на решение данной задачи.
  • Вопрос задан
  • 1613 просмотров
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Если упрощенно, то можно так:
@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
Ответ написан
Комментировать
@ComodoHacker
@echo off
setlocal enabledelayedexpansion
for /l %%I in (1,1,30) do (
	set S=0%%I
	set S=!S:~-2!.01
	mkdir !S!\wb
	mkdir !S!\zaliv
)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы