FileMove - Umbennen wie im Windows Explorer

  • Hallo zusammen

    Ich suche nach der Möglichkeit wie im beim Windows Explorer beim Verschieben von Dateien zu prüfen ob der Dateiname bereits vorhanden ist und wenn ja wie im Windows Explorer die Dateien in der Form umzubennen "DATEINAME NEU.DAT ", "DATEINAME NEU(2).DAT", "DATEINAME NEU(3).DAT" ect.

    Heißt aber auch, das wenn ich eine Datei "DATEINAME NEU(2).DAT" auch kopieren würde, daß wieder der Zähler in Klammer um 1 erhöht wird.

    Kann mir da jemand helfen

    Danke

  • Hallo

    Also im Grund Funktioniert das Script soweit im folgenden Seznario:

    Ich kopiere Dateien welche aus einem Array kommen per Script in ein festes Verzeichnis. Die Dateien heißen immer gleich.
    Nur können auch einige manuell solche Dateien in das Verzeichnis kopieren. Daher möchte ich vorher prüfen,
    ob die Datei bereits vorhanden ist. Und das für jede Datei neu. Ist bereits eine Datei vorhanden soll ein Zähler an den
    Dateinamen gefügt werden welcher aber auch im Zielverzeichnis vorkommen kann und auch immer gleich ist.

    Bei meinem Script funktioniert das soweit, bis auf wenn die Dateil ohne den Zähler noch nicht vorhanden ist.

    Dann bleibt die Schleife immer bei dem selben Namen.


    Hier nun der Teil des Scripts um den es geht (gekürzt):

    [autoit]



    $CheckBit = 0
    $Dateizaehler = 0

    $Dateinamen[1] = "Test.txt"
    $Dateinamen[2] = "Test1.txt"
    $Dateinamen[3] = "Test2.txt"
    $Dateinamen[4] = "Test3.txt"
    $Dateinamen[5] = "Test4.txt"

    $XNeuerName = "Zielname"


    For $i = 0 To UBound($Dateinamen)-1

    $Dateierweiterung = Stringright($Dateinamen[$i],4)
    $NeuerName = $XNeuerNameX & $Dateierweiterung

    [/autoit][autoit][/autoit][autoit]

    _ExistFileCounter($Link, $NeuerName, $Dateizaehler, $CheckBit)


    Do
    $NeuerName = $XNeuerNameX & " (" & $Dateizaehler & ")" & $Dateierweiterung
    _ExistFileCounter($Link, $NeuerName, $Dateizaehler, $CheckBit)
    Until $CheckBit = 0

    [/autoit][autoit][/autoit][autoit]

    MsgBox(1,"",$NeuerName) ;Bzw FileCopy

    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _ExistFileCounter(ByRef $Link, ByRef $NeuerName, ByRef $Dateizaehler, ByRef $CheckBit)
    If FileExists($Link & $NeuerName) Then
    $FCounter = $Dateizaehler + 1
    $CheckBit = 1
    Else
    $CheckBit = 0
    EndIf
    EndFunc

    [/autoit]

    Danke schon mal