Ordner löschen

  • Guten Tag,

    Ich bin mal wieder auf dem Holzweg!

    Ich kopiere den Ordner A (2022-02-06) in mein Backup und möchte dann den Ordner B (2021-02-06) löschen.

    Meine Idee war mit _DateTimeSplit das Jahr auszulesen, dann mit

    $Zahl1 = 2022

    $Zahl2 = 1

    $Ergebnis = $Zahl1 - $Zahl2

    den Ordner B ($Ergebnis-02-06) löschen zu können.

    Die MsgBox zeigt zwar 2021 an - aber die Übergabe funktioniert nicht.

    Für Lösungen wäre ich dankbar

    Gruß HP

  • Kann es sein, dass der Ordnername Datum (also z.B. 2022-02-06) lautet, nicht wie autoBert vermutet B (Datum) ?

    Versuche mal :

    AutoIt
    Local $sFolder, $sDelFolder
    $sFolder    = "2022-02-06"
    $sDelFolder = String(Number(StringMid($sFolder, 1, 4) - 1)) & '-' & StringMid($sFolder, 6, 2) & '-' & StringMid($sFolder, 9, 2)
    MsgBox(4096, "", "Verzeichnis = " & $sFolder & @CRLF & "Entfernen  = " & $sDelFolder & @CRLF)

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Musashi

    Deine Annahme ist richtig.

    Aber weil meine Frage nicht konkret war haperts auch mit der Umsetzung:

    1. Wenn ich $sFolder = "E:\2022-02-06" stimmt der String in $sDelFolder nicht mehr - bitte neu schreiben

    2. Wie kann ich das Ergebnis umsetzen - DirRemove (Ergebnis)

    Dank für die Mühe

    Gruß HP

  • Aber weil meine Frage nicht konkret war haperts auch mit der Umsetzung:

    1. Wenn ich $sFolder = "E:\2022-02-06" stimmt der String in $sDelFolder nicht mehr

    Das ist klar, da derzeit nur der Name des (Unter-)Ordners selbst, also 2022-02-06 , "umgerechet" wird.

    Bei einer vollständigen Pfadangabe stimmen die Positionswerte für StringMid so natürlich nicht mehr.

    Das kann man leicht anpassen, aber bevor wir uns hier verzetteln :

    Hast Du eine vorgegebene Verzeichnisstruktur in der die Tagesordner angelegt bzw. gelöscht werden ?

    Beispiel : E:\Backups\2022-02-06 anlegen, E:\Backups\2021-02-06 entfernen

    DirRemove mit vollständiger Pfadangabe sowie dem optionalen Parameter :

    $DIR_REMOVE (1) = Löscht Dateien und Unterverzeichnisse (wie beim DOS-Befehl "DelTree")

    wäre die Umsetzung.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ich bin zwar spät dran, aber mein Vorscglag wäre dieser gewesen:

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    2 Mal editiert, zuletzt von Alina (21. April 2022 um 18:13) aus folgendem Grund: edit: Fehlerberichtigung

  • Ich bin zwar spät dran, aber mein Vorschlag wäre dieser gewesen:

    Code
    [...]
    $Array_1 = StringSplit(_NowDate(),".")
    [...]

    Falls man über die <Date.au3> Funktionen geht und vom aktuellen Tagesdatum ein Jahr subtrahieren möchte, dann langt bereits :

    AutoIt
    #include <Date.au3>
    Local $sNewDate = StringReplace(_DateAdd('Y', - 1, _NowCalcDate()), "/", "-")
    MsgBox(4096, "", "aktuelles Datum - 1 Jahr : " & $sNewDate)  

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Beispiel : E:\Backups\2022-02-06 anlegen, E:\Backups\2021-02-06 entfernen

    Wenn er das vor hat, dann würde ich ja den gesamten Inhalt von E:\Backups\2021-02-06 löschen und dann den Ordner 2021-02-06 in 2022-02-06 umbenennen.
    Oder wäre das zu "brutal" ? ? ?

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Falls man über die <Date.au3> Funktionen geht und vom aktuellen Tagesdatum ein Jahr subtrahieren möchte, dann langt bereits :

    AutoIt
    #include <Date.au3>
    Local $sNewDate = StringReplace(_DateAdd('Y', - 1, _NowCalcDate()), "/", "-")
    MsgBox(4096, "", "aktuelles Datum - 1 Jahr : " & $sNewDate)  

    Musashi
    Das mache ich eigentlich auch so !
    Ich dachte das es ihm um die Zusammensetzung von "Execute" ging und nicht um den Weg dahin.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Wenn er das vor hat, dann würde ich ja den gesamten Inhalt von E:\Backups\2021-02-06 löschen und dann den Ordner 2021-02-06 in 2022-02-06 umbenennen.
    Oder wäre das zu "brutal" ? ? ?

    Keine Ahnung, wie leidensfähig hpb ist ^^ .

    Ich wollte es gerade ohne RegEx machen, da dies bei einigen Usern zu Panikattacken führen kann ;) .

    Die Lösung von BugFix ist sicher die optimalste.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Musashi

    ich versuche mal zu beschreiben:

    Mein Script soll ausführen:

    1. kopiere den Ordner E:\2022-02-06

    2. lösche den Ordner E:\2021-02-06

    Dein Ansatz ist also völlig richtig - wie die MsgBox ausgibt

    Ich hätte gerne statt der MsgBox den Pfad ausgegeben, damit ich

    DirRemove ("Pfad")

    ausführen kann

    Gruß HP

  • hpb : Ich gehe gleich ein Bierchen trinken :theke:

    Das Skript von BugFix erfüllt bereits alle deine Anforderungen.

    Bleibt ggf. nur noch die Frage genauer zu klären :

    1. kopiere den Ordner E:\2022-02-06

    Woher kommen die Daten, die in diesen Ordner kopiert werden sollen ?

    kopiere den Ordner ...  ist ggf. etwas missverständlich, weil sich die Frage wohin aufdrängt.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • BugFix

    Das ist die Lösung, die ich brauche.

    An alle Anderen: Ich bin zu langsam für Euch - werde demnächst länger warten ob noch weitere Vorschläge kommen.

    Herzlichen Dank für Eure Hilfe.

    Gruß HP

  • Kann es sein, dass der Ordnername Datum (also z.B. 2022-02-06) lautet, nicht wie autoBert vermutet B (Datum) ?

    Falls dem so ist einfach anpassen: