_rename

  • hallo!

    ich hab mir da ma eine kleine funktion geschrieben die dateien umbenennen soll, das geht zwar auch mit filecopy das dauert bei großen dateien aber sehr lange!So meine funktion tut es soweit auch aber


    Spoiler anzeigen
    [autoit]

    Func _rename($sourcename,$destname)
    Dim $folder = ""
    If Not FileExists($sourcename) Then SetError(1)
    $dir = StringSplit($sourcename,"\")
    $dest = StringSplit($destname,"\")
    For $i = 1 To $dir[0]-1 Step 1
    $folder = $folder&$dir[$i]&"\"
    Next
    Opt("WinTitleMatchMode",2)
    ShellExecute("cmd.exe")
    WinWaitActive("cmd.exe")
    WinActivate("cmd.exe")
    Send("cls")
    Send("{ENTER}")
    Send("CD "&$folder)
    Sleep(100)
    Send("{ENTer}")
    Sleep(100)
    Send("ren "&$Dir[$Dir[0]]&" "&$dest[$dest[0]])
    Send("{ENTER}")
    If Not FileExists($folder&"\"&$dest[$dest[0]]) Then SetError(2)
    WinKill("cmd.exe")
    EndFunc

    [/autoit]

    , ich möchte, dass das ganze im hintergrund läuft also
    nicht sichtbar ist ich hab das ma so versucht:

    Spoiler anzeigen
    [autoit]

    ShellExecute("cmd.exe","","",""@SW_HIDE)

    [/autoit]

    da bleibt das script dann bei WinWaitActive("cmd.exe") stecken!

    weiß einer wie ich dass trotz @SW_HIDE realisieren kann oder gibt es da noch eine bessere möglichkeit?

    mfg DjBasslord

  • Hi,

    mach das doch lieber per FileMove.
    Du nimmst den aktuellen path und verschiebst die Datei in den selben Pfad nur mit geändertem Namen.


    Mfg

  • ok ich hab winwaitactive raus genommen! jetzt tuts doch^^
    aber da gibt es bestimmt noch ne bessere lösung mit der cmd!


    edit: ja das geht auch mit filemove^^ thx
    PS: wie kann man eig nen beitrag closen?

    Einmal editiert, zuletzt von DjBasslord (3. März 2007 um 13:56)

  • Zitat

    PS: wie kann man eig nen beitrag closen?

    Habe auch etwas länger danach gesucht, aber unter dem Thread in der rechten unteren Ecke ist ein Menü "Weitere Optionen:". Hier dann auf "thema bearbeiten".

    Gruß