Filename kürzen

  • klappt leider nicht ganz, es wird immer nur an die erste Datei eine 001 angehängt, die anderen verschwinden immer noch :(

    Fehlermeldung ist diese:
    Line9 (FileC:pfad.):
    $sNewFileName = StringRegExpReplace($aFiles[$i],"^[\d\s]+- ?","")
    $sNewFileName = StringRegExpReplace(^ERROR

    Error: Array variable has incorrect number of subscript or subscript dimension range exceeded

  • nun gehts, mit der Änderung :P

    Fehlermeldung kommt aber immer noch die selbe....

  • Nun musste ich es wohl doch mal testen. Ich dachte, dass der Code von dir bereits stimmt, hat er aber leider nicht ganz.
    So sollte es nun gehen:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

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

    Global $sOrdnerPfad = "Y:\Test2\" ; Pfad zu deinem Ordner mit den Filmen -> Endung muss \ sein
    Global $aFiles = _FileListToArray($sOrdnerPfad)

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

    For $i = 1 To $aFiles[0]
    $sNewFileName = StringTrimLeft($aFiles[$i], StringInStr($aFiles[$i], '-', 1, -1) + 1)
    FileMove($sOrdnerPfad & $aFiles[$i], _FileGetNextBackup($sOrdnerPfad & $sNewFileName), 1)
    Next

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

    Func _FileGetNextBackup($sFile)
    ;funkey 2010, April, 02
    Local $NextFile
    Local $sExt = _FileGetExt($sFile)
    For $i = 1 To 999
    $NextFile = StringFormat(StringTrimRight($sFile, StringLen($sExt)) & "(%003i)." & $sExt, $i)
    If Not FileExists($NextFile) Then ExitLoop
    Next
    Return $NextFile
    EndFunc ;==>_FileGetNextBackup

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

    Func _FileGetExt($sFileName)
    Local $sExt = StringTrimLeft($sFileName, StringInStr($sFileName, ".", 0, -1))
    If StringInStr($sExt, "\") Or StringInStr($sExt, "/") Then Return "" ;no extension
    Return $sExt
    EndFunc ;==>_FileGetExt

    [/autoit]