Ordner erstellen mit Datum

  • hi,
    ein gesundes neues jahr noch von mir.
    ich habe da ein kleines problem mit der erstellung von ordner mit datum.
    hier mein versuch

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    $iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd( 'd',-1, _NowCalcDate())
    If $iWeekday = 7 Then
    DirCreate("C:\" & $sNewDate)
    EndIf
    Exit

    [/autoit]


    mit festen parametern geht es nur mit datum geht es nicht . was mache ich falsch?

    mfg thomasb

    MFG ThomasB

    *
    Ich lese viel und gerne (und wenn ich alle Mahnungen durch habe, schmeiße ich sie weg)
    *

  • hi,
    ich dachte mir das ich über
    $sNewDate = _DateAdd( 'd',-1, _NowCalcDate()) das datum von gestern erzeuge und wenn es montag ist dann von freitag.

    thomasb

    MFG ThomasB

    *
    Ich lese viel und gerne (und wenn ich alle Mahnungen durch habe, schmeiße ich sie weg)
    *

  • hi thomasb,

    ist ganz einfach. Die Bestandteile des Datums werden jeweils durch einen / getrennt. Und dieses Zeichen ist in Ordner/Dateinamen nicht erlaubt ;)

    so gehts:

    [autoit]


    #include <Date.au3>
    $iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd( 'd',-1, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate,"/","-")
    MsgBox(32,"",$sNewDate)
    If $iWeekday = 7 Then
    DirCreate("C:\" & $sNewDate)
    EndIf
    Exit

    [/autoit]

    Einmal editiert, zuletzt von jonk (6. Januar 2007 um 18:59)

    • Offizieller Beitrag

    Hi,

    wenn du dir dein Ergebnis anguckst, weißt du auch warum!

    Hier mal anders:

    [autoit]


    #include <Date.au3>
    $iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd( 'd',-1, _NowCalcDate())
    If $iWeekday = 7 Then
    DirCreate(@ScriptDir & "\" & StringReplace($sNewDate, "/", "-"))
    ;MsgBox(0,"","C:\" & StringReplace($sNewDate, "/", "-"))
    EndIf
    Exit

    [/autoit]

    So long,

    Mega

  • hi,
    könnt ihr mir den stringreplace erklären das mit dem / verstehe ich nicht?

    thomasb

    MFG ThomasB

    *
    Ich lese viel und gerne (und wenn ich alle Mahnungen durch habe, schmeiße ich sie weg)
    *

  • Mit stringreplace wird in einem gegebenen String ($sNewDate) eine bestimmte Zeichenfolge (/) gesucht und durch die angebene neue Zeichenfolge ersetzt (-). Dieser zusätzliche Schritt mit stringseplace ist erfordlich um einen gültigen Ordnernamen zu erhalten.. also ohne /

    http://en.wikipedia.org/wiki/Filename

    Einmal editiert, zuletzt von jonk (6. Januar 2007 um 19:15)

  • hi,

    danke euch allen ich denke ich habe es verstanden

    thomasb

    MFG ThomasB

    *
    Ich lese viel und gerne (und wenn ich alle Mahnungen durch habe, schmeiße ich sie weg)
    *

  • hi,
    ich nochmal wie sieht der umgedrehte weg aus mit dem dirremove wenn das datum auf -2 gesetz wird

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    $iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd( 'd',-1, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate,"/",".")
    $sNewDater = _DateAdd( 'd',-2, _NowCalcDate())
    $sNewDater = StringReplace($sNewDater,"/",".")
    If $iWeekday = 7 Then
    DirCreate("C:\" & $sNewDate)
    FileCopy("d:\*.txt", "C:\" & $sNewDate)
    DirRemove("C:\" & $sNewDater)
    EndIf
    Exit

    [/autoit]

    danke nochmals
    thomasb

    MFG ThomasB

    *
    Ich lese viel und gerne (und wenn ich alle Mahnungen durch habe, schmeiße ich sie weg)
    *

    • Offizieller Beitrag

    Hi,

    hmmh weiß ja nicht, genau was du erreichen willst. Aber ich habe es so getestet :

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    $iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd('d', -1, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate, "/", ".")
    $sNewDater = _DateAdd('d', -2, _NowCalcDate())
    $sNewDater = StringReplace($sNewDater, "/", ".")
    DirCreate("C:\" & $sNewDater)
    Sleep(5000) ; zum Gucken ob er da ist. :)
    If $iWeekday = 7 Then
    DirCreate("C:\" & $sNewDate)
    ;FileCopy("d:\*.txt", "C:\" & $sNewDate)
    DirRemove("C:\" & $sNewDater)
    EndIf
    Exit

    [/autoit]

    So long,

    Mega

  • hi,
    was ich erreichen will ist das ich die schonmal in diesem forum behandelte datensicherung(mit deinem script zur sicherung des servers). so soll bevor diese läuft täglich ein ordner mit dem datum des vortage angelegt werden, die vorhandene sicherung dort hin verschieben, sichern und dann den ordner von vor zwei tagen löschen . soweit meine "naive" logik. sicher gibt es einen besseren weg.

    thomas

    MFG ThomasB

    *
    Ich lese viel und gerne (und wenn ich alle Mahnungen durch habe, schmeiße ich sie weg)
    *

    • Offizieller Beitrag

    Hi!

    Das kann schon so funktionieren.
    Nachdem du aber nur einmal pro Woche sichern willst (deinem Code von oben entnommen), müsstest du dann bei deinem letzten Code aus -2 -14 machen, so wie ich das sehe. Sonst sollte der auf den ersten Blick funktionieren. Hast du ihn schon mal getestet?

    peethebee