1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. hpb

Beiträge von hpb

  • Ordner löschen

    • hpb
    • 2. Mai 2022 um 10:07

    Dank nochmal an Alle für die Hilfe

  • Ordner löschen

    • hpb
    • 29. April 2022 um 11:09

    Moombas

    Dank für die schnelle Hilfe - funkioniert.

    Werde noch prüfen warum das mir nicht klappt.

    Schönes Wochende - meins ist jetzt gerettet. :thumbup:

  • Ordner löschen

    • hpb
    • 29. April 2022 um 09:36

    BugFix

    ich hoffe, ich erfülle die Bedingungen deines Tipps :/

    Ich habe mit Eurer Hilfe folgendes Script gebastelt:

    AutoIt
    $src  = 'E:\taegl_Backup_P1\2022-02-06'
    $srcd = 'E:\taegl_Backup_P1\2022-02-06\D$'
    $dst  = 'E:\jaehrl_Backup\2022\2022-02'
    If FileExists ($src) And StringInStr(FileGetAttrib ($src), 'DC') Then
        Run (@ComSpec & ' /k robocopy.exe "' & ($srcd) & '" "' & ($dst) & '" /E /XO', @SystemDir)
    EndIf
    FileSetAttrib (($src), '+O')
    Exit

    Wie kann ich dazu noch folgendes hinzufügen:

    Lösche "E:\taegl_Backup_P1\2020-02-06"?

    Mit

    AutoIt
    Local $String = StringMid ("E:\taegl_Backup_P1\2022-02-06" , 1, 26)
    $sNewDate = StringReplace(_DateAdd('Y', -2, "2022-02-06"), "/", "-")
    MsgBox(4096, "", $String & $sNewDate)

    gibt die MsgBox zwar E:\taegl_Backup_P1\2020-02-06 aus -

    aber DirRemove braucht den path.

    Kann ich statt in die MsgBox einen path für DirRemove ausgeben oder gibt es einen anderen Weg?

    EDIT BugFix: Bitte setze deinen Code in Code-Boxen (Menü: </>, Sprachauswahl: AutoIt), habe das mal für dich gemacht.

  • Number in String

    • hpb
    • 29. April 2022 um 08:46

    Guten Morgen,

    Dank für eure Hilfe, um weitere Missverständnisse - durch meine unpräzisen Angaben - auszuschließen, schließe ich das Thema und beginne noch mal von vorne.

    Gruß HP

  • Number in String

    • hpb
    • 28. April 2022 um 07:01

    Moombas

    BugFix

    Ich bin so doof - natürlich brauche ich FileExists nicht! ;(

    Dank für Eure Geduld

  • Number in String

    • hpb
    • 27. April 2022 um 16:14

    Moombas

    Ich brauche IfFileExists!

    Ich möchte z.B. ("E:\\taegl_Backup_P1\2022-02-06"), ("E:\Server\taegl_Backup_P1\2022-02-19") und

    ("E:\Server\taegl_Backup_P1\2022-02-29") nacheinander nach ("E:\jaehrl_Backup\2022\2022-02") kopieren.

    Mit

    If FileExists("E:\taegl_Backup_P1\2022-02-06") And StringInStr(FileGetAttrib("E:\taegl_Backup_P1\2022-02-06"), 'DC') Then

    habe ich die Bedinungen 1 und 2 erfüllt.

    Das mit dem _AddDate habe ich hofentlich begriffen, aber unabhängig davon - wie füge ich den Nachweis von

    ("E:\jaehrl_Backup\2022\2022-03") als weitere Bedingung ein?

    If FileExists("E:\taegl_Backup_P1\2022-02-06") And StringInStr(FileGetAttrib ("E:\taegl_Backup_P1\2022-02-06"), 'DC') And (Bedingung 3) Then

    Das ist für mich wichtig, da ich erst dann die die Ordner aus dem taegl_Backup_P1-Monat 02 nach jaehrl_Backup_P1-Monat 02 kopiere wenn ("E:\jaehrl_Backup\2022\2022-03") existiert - d.h. der Monat 02 ist vorbei, also mache ich mein Backup.

    Gruß HP

  • Number in String

    • hpb
    • 27. April 2022 um 14:29

    BugFix

    Hast ja recht daher das ganze mal von vorne:

    Ich habe mit Eurer Hilfe folgendes Script gebastelt:

    If FileExists("E:\taegl_Backup_P1\2022-02-06") And StringInStr(FileGetAttrib("E:\taegl_Backup_P1\2022-02-06"), 'DC') Then

    Run (@ComSpec & ' /k robocopy.exe "' & ("E:\taegl_Backup_P1\2022-02-06\D$") & '" "' & ("E:\jaehrl_Backup\2022\2022-02") & '" /E /XO', @SystemDir)

    EndIf

    Damit sind Bedingung 1 und Bedingung 2 erfüllt.

    Wie kann ich die Bedingung 3 einfügen?

    If FileExists("E:\taegl_Backup_P1\2022-02-06") And StringInStr(FileGetAttrib("E:\taegl_Backup_P1\2022-02-06"), 'DC') And (Bedingung 3) Then

    Bedingung 1: Existiert der Ordner If FileExists("E:\taegl_Backup_P1\2022-02-06")

    Bedingung 2: Prüfe ob dieser Ordner die Attribute DC hat (FileGetAttrib("E:\taegl_Backup_P1\2022-02-06"), 'DC')

    Bedingung 3: Existiert der Ordner ("E:\jaehrl_Backup\2022\2022-03")

    Ich möchte dafür ("E:\jaehrl_Backup\2022\2022-02" +1) nutzen

  • Number in String

    • hpb
    • 27. April 2022 um 08:36

    @Musashi

    Du hast natürlich recht mit _DateAdd.

    Wie lässt sich das Ergebnis von $sNewDate als weitere Bedingung in die Zeile

    If FileExists("E:\Test") And StringInStr(FileGetAttrib("E:\Test"), 'DC') And Ergebnis von $sNewDate Then

    einbauen?

    Dank für Deine Hilfe

  • Number in String

    • hpb
    • 26. April 2022 um 20:18

    @Musashi

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

    Das kann ich nachvollziehen - aber warum muss StringFormat("%02s", String(Number (StringMid($sFolder, 6, 2) + 1) ))

    gesetzt werden?

  • Number in String

    • hpb
    • 26. April 2022 um 16:52

    Ich hab versucht dieses Script von @Musashi

    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)

    so umzubauen

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

    Hat natürlich nicht funktioniert - die MsgBox bleibt unter "Entfernen" leer, es wird auch kein Syntax error angezeigt. ;(

  • Suche Ordner

    • hpb
    • 26. April 2022 um 11:13

    @Musashi

    Zitat von Musashi

    ; Alternativ : ; If FileExists($sPath) And StringInStr(FileGetAttrib($sPath), 'D') Then

    Das ist die Lösung, die mir auch bei weiteren Abfragen helfen wird.

    Herzlichen Dank

  • Suche Ordner

    • hpb
    • 25. April 2022 um 12:59

    Ich möchte den Ordner E:\Test finden.

    Mit

    AutoIt
    If Not StringRegExp(FileGetAttrib (("E:\Test")), '(?i)[DOC]{3}') Then
    Run (@ComSpec & ' /k robocopy.exe "' & ("E:\Test") & '" "' & ("D:\Test") & '" /E /XO', @SystemDir)
    EndIf

    stelle Ich die Attribute fest und kopiere.

    Wie schreibe ich das Script für

    Finde den Ordner - ist der Ordner vorhanden - dann

    AutoIt
    If Not StringRegExp(FileGetAttrib (("E:\Test")), '(?i)[DOC]{3}') Then
    Run (@ComSpec & ' /k robocopy.exe "' & ("E:\Test") & '" "' & ("D:\Test") & '" /E /XO', @SystemDir)
    EndIf

    Gruß HP

  • Mit Call eine Func aufrufen

    • hpb
    • 23. April 2022 um 16:13

    Velted

    Danke für den Tip, dass die Func einmal im Script vorhanden sein muss

  • Mit Call eine Func aufrufen

    • hpb
    • 23. April 2022 um 12:58

    @Musashi

    weil die Func in Ordnung ist - sie arbeitet einwandfrei, denn sie ist

    von BugFix .

    Ich möchte die Func nur mit anderen Parametern im gleichen Script

    nochmals nutzen.

    Wenn ich das Script kopiere - also 2x ausführe erhalte ich

    $sFolder = "E:\2022-02-06"

    _DeleteLastYear($sFolder)

    Func _DeleteLastYear($_sFolder)

    Local $aPath = StringRegExp($_sFolder, '(.+)\\(\d{4})(-\d{2}-\d{2})$', 3)

    Local $RemoveDir = StringFormat('%s\%s%s', $aPath[0], $aPath[1]-1, $aPath[2])

    Return DirRemove($RemoveDir)

    EndFunc

    Exit

    $sFolder = "E:\2022-02-07"

    _DeleteLastYear($sFolder)

    Func _DeleteLastYear($_sFolder) ; error: _DeleteLastYear () already defined

    Local $aPath = StringRegExp($_sFolder, '(.+)\\(\d{4})(-\d{2}-\d{2})$', 3)

    Local $RemoveDir = StringFormat('%s\%s%s', $aPath[0], $aPath[1]-1, $aPath[2])

    Return DirRemove($RemoveDir)

    EndFunc

    Exit

    Mit

    $sFolder = "E:\2022-02-06"

    _DeleteLastYear($sFolder)

    Func _DeleteLastYear($_sFolder)

    Local $aPath = StringRegExp($_sFolder, '(.+)\\(\d{4})(-\d{2}-\d{2})$', 3)

    Local $RemoveDir = StringFormat('%s\%s%s', $aPath[0], $aPath[1]-1, $aPath[2])

    Return DirRemove($RemoveDir)

    EndFunc

    Exit

    $sFolder = "E:\2022-02-07"

    Call ("_DeleteLastYear", $sFolder)

    Exit

    wird zwar die 1. Func ausgeführt - aber sonst passiert nichts.

    Daher die Frage: Was habe ich mit Call falsch gemacht?

  • Mit Call eine Func aufrufen

    • hpb
    • 23. April 2022 um 07:58

    BugFix hat folgendes Script geschrieben :

    AutoIt
    $sFolder = "E:\2022-02-06"
    _DeleteLastYear($sFolder)
    
    Func _DeleteLastYear($_sFolder)
        Local $aPath = StringRegExp($_sFolder, '(.+)\\(\d{4})(-\d{2}-\d{2})$', 3)
        Local $RemoveDir = StringFormat('%s\%s%s', $aPath[0], $aPath[1] - 1, $aPath[2])
        Return DirRemove($RemoveDir)
    EndFunc   ;==>_DeleteLastYear

    Ich hatte die Hoffnung mit

    $sFolder = "E:\2022-02-07"

    Call ("_DeleteLastYear", $sFolder)

    den nächsten Ordner zu löschen aber es passiert nichts

    - keine Fehlerangabe im Script

    - der Ordner wird nicht gelöscht

    Mach ich einen Fehler bei "Call"? :/

    Gruß HP

  • Ordner löschen

    • hpb
    • 22. April 2022 um 12:03

    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

  • Ordner löschen

    • hpb
    • 21. April 2022 um 19:04

    @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

  • Ordner löschen

    • hpb
    • 21. April 2022 um 17:19

    @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

  • Ordner löschen

    • hpb
    • 21. April 2022 um 14:55

    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

  • Robocopy in Func

    • hpb
    • 20. April 2022 um 14:58

    Moombas

    Danke für den Hinweis

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™