2012-03-06 74 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

相關問題