Moin Moin, habe heute mal ein kleines Script geschrieben was #avi mkv und sonstige Dateien umbennent also kurze Erklärung
Script wird gestartet
> Ordner auswählen in der die Dateien gesucht und umbennant werden sollen
> Script startet und sucht alle im Kopf angegebenen Dateitypen
> Script bennent die Dateien um wie den darübergeordneten Ordner, die Dateiendung wird beibehalten
Wofür braucht man dass? , Stichwort : Serien
Achso, habe das ganze auch noch für das ändern von Ordnern gemacht, in denen Oft CrewNamen Releasedates und sonstiger Müll vorhanden ist, dieses Script muss man sich natürlich anpassen auf seine Bedürfnisse
Rename Folders:
Spoiler anzeigen
#include <Array.au3>
#include <File.au3>
Global $Folder = FileSelectFolder("Bitte Ordner auswählen",@ComputerName)
If @error Then Exit(MsgBox(64,"Keinen Ordner ausgewählt","Script wird nun beendet"))
Global $FolderList = _FileListToArray($Folder,"*",2)
Global $Strip, $NewFolderName, $x = 1, $Source , $Dest
For $i = 1 To UBound($FolderList)-1
$Strip = StringSplit($FolderList[$i],'.')
$NewFolderName = ''
For $p = 1 To UBound($Strip)-1
If $Strip[$p] = 'German' Then ExitLoop
$String = $Strip[$p]&' '
$NewFolderName = $NewFolderName&$String
If $p = 3 Then $NewFolderName = $NewFolderName&'- '
Next
$NewFolderName = StringTrimRight($NewFolderName,1)
$Source = $Folder&'\'&$FolderList[$i]
$Dest = $Folder&'\'&$NewFolderName&'\'
FileMove($Source,$Dest,9)
DirRemove($Source)
Next
RenameVideos
Spoiler anzeigen
#include<Array.au3>
Global $FolderSelect = FileSelectFolder("Bitte Ordnerstamm auswählen",@ComputerName)
Global $aEndungen[5] = ['','.avi' ,'.mkv','.flv','.mp4'], $Split
Global $AllFiles[500][UBound($aEndungen)-1]
If @error Then Exit(MsgBox(64,"Keinen Ordner ausgewählt","Script wird nun beendet"))
For $i = 1 To UBound($aEndungen)-1
$FileList = _GetFilesFolder_Rekursiv($FolderSelect, $aEndungen[$i],0,1)
$Split = StringSplit($FileList,@CRLF,1)
_Copy2Array($AllFiles,$Split,$i-1)
Next
_RenameFiles($AllFiles)
Func _Copy2Array(ByRef $AllFiles,$Array2Copy,$Dimension)
For $i = 1 To UBound($Array2Copy)-1
$AllFiles[$i][$Dimension] = $Array2Copy[$i]
Next
EndFunc
Func _RenameFiles(ByRef $AllFiles)
Local $StripFolderName, $StripDataFormat, $Strip, $Surce, $Dest, $NewDataName
For $i = 0 To UBound($AllFiles,2)-1
For $x = 1 To UBound($AllFiles)-1
If $AllFiles[$x][$i] = '' Then ExitLoop
$Source = $AllFiles[$x][$i]
$Strip = StringSplit($AllFiles[$x][$i],'\',1)
$StripDataFormat = StringRight($AllFiles[$x][$i],4)
;ConsoleWrite("DEBUG: "& "ORDNER: "&$StripFolderName & ' FORMAT: ' & $StripDataFormat&@CRLF)
$StripFolderName = $Strip[UBound($Strip)-2]
$NewDataName = $StripFolderName&$StripDataFormat
$New = StringReplace($AllFiles[$x][$i],$Strip[UBound($Strip)-1],$NewDataName)
FileMove($Source,$New)
Next
Next
EndFunc
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================
Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
Global $oFSO = ObjCreate('Scripting.FileSystemObject')
Global $strFiles = ''
Switch $sDelim
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
Case '3'
$sDelim = ';'
Case '4'
$sDelim = '|'
Case Else
$sDelim = @CRLF
EndSwitch
If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
If $sExt = -1 Then $sExt = '*'
If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
_ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
If $iRetType = 0 Then
Local $aOut
$aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles, StringLen($sDelim))
EndIf
EndFunc
Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
If Not IsDeclared("strFiles") Then Global $strFiles = ''
If ($Dir = -1) Or ($Dir = 0) Then
For $file In $Folder.Files
If $Ext <> '*' Then
If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
$strFiles &= $file.Path & $Delim
Else
$strFiles &= $file.Path & $Delim
EndIf
Next
EndIf
For $Subfolder In $Folder.SubFolders
If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
_ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
Next
EndFunc
Gruß Marvin