批量创建一组子文件夹在几个文件夹中

raz*_*mny 0 windows cmd batch-file

我的目标是创建一组具有相同子文件夹的文件夹.自1881年以来,每年我需要一个文件夹,每年文件夹应包含每月一个文件夹,每个月文件夹应包含每天一个文件夹.

我找到了一个创建文件夹多年的工具,现在我的挑战是用子文件夹填充它们.我想在Windows客户端计算机上执行此操作,最好不要安装任何东西.

我一直在努力的是使用FOR和MD命令来完成这项工作.这是我到目前为止的代码:

SET %g=*.*
FOR /d %var IN %path% DO MKDIR 01 02 03
Run Code Online (Sandbox Code Playgroud)

每当我运行它时,我都会收到此错误:

%path%此时是意料之外的

所以,这就是我现在所处的地方.我很感激你能给我的任何帮助!

Aac*_*ini 6

对不起PA你的解决方案是对的,我无法抗拒添加一些代码以创造每月正确天数的诱惑.

@echo off
setlocal EnableDelayedExpansion
set m=0
for %%d in (31 28 31 30 31 30 31 31 30 31 30 31) do (
   set /A m+=1
   set daysInMonth[!m!]=%%d
)
pushd d:\dest
for /L %%y in (1881,1,2012) do (
   mkdir %%y
   pushd %%y
   for /L %%m in (1,1,12) do (
      mkdir %%m
      pushd %%m
      set days=!daysInMonth[%%m]!
      if %%m == 2 (
         set /A yMod4=%%y %% 4, yMod100=%%y %% 100, yMod400=%%y %% 400
         if !yMod4! == 0 (
            set /A days+=1
            if !yMod100! == 0 if not !yMod400! == 0 (
               set /A days-=1
            )
         )
      )
      for /L %%d in (1,1,!days!) do (
         mkdir %%d
      )
      popd
   )
   popd
)
popd
Run Code Online (Sandbox Code Playgroud)

以前的代码在闰年增加1天至2月,也就是说,如果年份可以被4整除,但是在百年年份只有它可以被400整除.1600和2000是闰年,但是1700,1800和1900不是.