2012-03-06 55 views
0

我的目标是创建一组具有相同子文件夹的文件夹。自1881年以来,我每年需要一个文件夹,每年文件夹应该每月包含一个文件夹,并且每个月文件夹应该每天包含一个文件夹。批量在几个文件夹中创建一组子文件夹

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

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

SET %g=*.* 
FOR /d %var IN %path% DO MKDIR 01 02 03 

每当我跑,我得到这个错误:

%path% was unexpected at this time

所以,这就是我在哪里stuch现在。我会很感激你能给我的任何帮助!

回答

3

第一,阅读HELP FOR,然后用东西开始,试试这个在命令行

for /l %a in (1881,1,2012) do @echo %a 

现在你已经湿,添加一些香料

for /l %a in (1881,1,2012) do @for /l %b in (1,1,12) do @echo %a-%b 

和你差不多完成

for /l %a in (1881,1,2012) do @for /l %b in (1,1,12) do @for /l %c in (1,1,31) do @echo %a-%b-%c 

剩下的唯一东西就是改变你的echo到此时,相应的mkdir并增加了一些咒语把它翻译成一个BAT文件....

@echo off 
pushd d:\dest 
for /l %%a in (1881,1,2012) do (
    mkdir %%a 
    pushd %%a 
    for /l %%b in (1,1,12) do (
    mkdir %%b 
    pushd %%b 
    for /l %%c in (1,1,31) do (
     mkdir %%c 
    ) 
    popd 
) 
    popd 
) 
popd 

,但被警告,这将增长极度疯狂!

+0

+1,但它总是在每个月创建31天的文件夹... – Aacini 2012-03-07 14:01:23

+0

不需要在最内层循环中需要pushd/popd和mkdir:'mkdir d:\ dest \ %% a \ %% b \ %% c' – dbenham 2012-03-08 00:23:48

6

对不起P.A.你的解决方案是对的,我无法抗拒每月添加一些代码来创造适当天数的诱惑。

@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 

上一页码1日闰年增加至2月,也就是说,如果当年是被4整除,但在百年岁月,只有当它是还整除400 1600和2000年是闰年,但1700年,1800年和1900年没有。

+0

对于_always_正确答案为+1,但是您是否认为将会使用您的某个闰年例外? – jeb 2012-03-07 14:18:58

+0

@jeb:那么,OP需要为1900年和2000年创建年份文件夹。另外,想一想:批量文件是在30多年前发明的,我们在这里使用它们!那么,谁知道2100年? :) – Aacini 2012-03-07 14:36:40

+0

+1比我的好! – 2012-03-07 14:57:31

相关问题