tandaluso
Goto Top

Ordner erstellen - nummeriert

Hallo,

ich möchte gerne Tagesordner für einen ganzen Monat erstellen: 06-10-01 bis 06-10-31. In jeden Ordner soll dann noch ein Unterordner "Berichte" erstellt werden. Soweit hab ich das hier:

@echo OFF

SET I=1

:BODY
IF %I% == 32 GOTO EXIT
MD C:\test\06-10-%I%
SET /A I=%I%+1
GOTO BODY

:EXIT
@echo ON
EXIT

Jedoch erstellt er bei den ersten 9 ohne die 0 vorweg (01,02,03,04 etc.). Und wie bekomm ich die unter Ordner noch eingefügt?

Weis jemand Rat?

Gruß tandaluso

Content-Key: 41469

Url: https://administrator.de/contentid/41469

Ausgedruckt am: 28.03.2024 um 07:03 Uhr

Mitglied: bastla
bastla 05.10.2006 um 07:59:13 Uhr
Goto Top
Hallo tandaluso!

Eine Schleife für die einstelligen Tage (und "0" extra angeben), eine zweite für den Rest:

FOR /L %%i in (1,1,9) Do MD C:\test\06-10-0%%i
FOR /L %%i in (10,1,31) Do MD C:\test\06-10-%%i

Schön ist das Ganze natürlich nicht (v. a. Jahr und Monat sowie Monatsende [31] fest verdrahtet) ...

HTH
bastla
Mitglied: MadMag
MadMag 05.10.2006 um 08:01:11 Uhr
Goto Top
Hallo, ich habe hier auch eine Lösung für deine Probleme:

@echo OFF

SET I=1

:BODY1
IF %I% == 10 GOTO BODY2
MD C:\test\06-10-0%I%\Unterordner
MD C:\test\06-10-0%I%\Unterordner2
SET /A I=%I%+1
GOTO BODY1

:BODY2
IF %I% == 32 GOTO EXIT
MD C:\test\06-10-%I%\Unterordner
MD C:\test\06-10-%I%\Unterordner2
SET /A I=%I%+1
GOTO BODY2

:EXIT
@echo ON
EXIT

Du musst halt nur darauf achten die Unterordner in Body1 und in Body2 anzulegen.
Sonst werden sie entweder bei Ordern 01-09 oder bei Ordner 10-31 erstellt.

Gruß MadMag
Mitglied: Biber
Biber 05.10.2006 um 09:53:50 Uhr
Goto Top
Moin tandaluso,

einen hätte ich noch aus der Reihe "Mein schönster Oneliner"....

:: --snipp MdMonatsDirs.bat
@for %%i in (01:31 02:28  03:31 04:30 05:31 11:30 12:31) do @(
  for /f "delims=: tokens=1-2" %%m in ("%%i") do @(  
     for /l %%a in (1,1,%%n) do @(
       if %%a lss 10 @(
       @ECHO if not exist 06-%%m-0%%a\Berichte md 06-%%m-0%%a\Berichte
       ) else (
       @ECHO if not exist 06-%%m-%%a\Berichte md 06-%%m-%%a\Berichte
 )))) 

[Wie immer das GROSS geschriebene @echo zum Scharfmachen löschen.
Und die Monatsliste in der ersten Zeile natürlich vervollständigt werden.]

Gruß
Biber
Mitglied: bastla
bastla 05.10.2006 um 13:46:53 Uhr
Goto Top
@Biber

... und Schaltjahresberücksichtigung passt da nicht mehr rein? face-wink

Grüße
bastla
Mitglied: Biber
Biber 05.10.2006 um 14:10:40 Uhr
Goto Top
@bastla

natürlich - in einem Produktivbatch würde ich selbstverständlich noch eine For-Schleife für die Jahre:TageImFeb außen herumlegen:
@for %%x in (2006:28 2007:28 2008:29 ..) do for /f "delims=: tokens=1,2" in ("%%x") Do...  
...

...aber erstens sollte das ja nur eine Skizze sein, und zweitens können wir beim nächsten Schaltjahr vielleicht schon etwas Eleganteres mit der M$-Vista PowerShell zaubern face-wink.

Oder im übernächsten Schaltjahr...

Grüße
Biber
Mitglied: bastla
bastla 05.10.2006 um 14:21:26 Uhr
Goto Top
@Biber

... und PowerShell wird sich auf Monade verstehen?

SCNR
bastla
Mitglied: Biber
Biber 05.10.2006 um 14:23:04 Uhr
Goto Top
*pruuuuuuuuuust* face-big-smile face-big-smile
Mitglied: tandaluso
tandaluso 05.10.2006 um 23:09:29 Uhr
Goto Top
Hallo,

und wie ist das mit der Sommerzeit? face-wink
Danke, hat soweit alles funktioniert.

Gruß Tandaluso