Seite 1 von 1

Schalter für Erstellung von Ordnern nach ID-Tag

Verfasst: 6. Jan 2013 21:11
von scsippc
Hallo,

ist es möglich Ordner nach ID-Tag z.B. Interpret zu erstellen und alle .mp3 des selben Interpreten zu verschieben. :?:
Ich habe ca. 2GB gemischte Musik in einem Ornder und möchte sie sortieren, aber nicht von Hand.

Re: Schalter für Erstellung von Ordnern nach ID-Tag

Verfasst: 7. Jan 2013 01:58
von Kundal
Dieser Schalter sollte für deine Zwecke geeignet sein. Er stammt aus der Schaltersammlung Umbenennen wo er im vierten Beitrag genauer erklärt ist. In der vierten Zeile des Codes kann der auf Id3-Tags basierende Pfad definiert werden. Das Beispiel verschiebt markierte MP3-Dateien nach Eigene Musik\Genre\Artist\Album\Tracknummer Titel.mp3. Das funktioniert auch in Flat View oder aus einer Dateisammlung heraus. Wenn alle deine Dateien sauber getagged sind kannst du mit diesem Schalter deine ganze Sammlung in einem Rutsch einheitlich umbenennen und in die gewünschte Ordnerstruktur verschieben.

Code: Alles auswählen

@noexpandenv
@runmode hide
@set OriginalSource={sourcepath$|noterm}
Rename FILEINFO FROM "*.mp3" TO "{alias|mymusic}\{mp3genre}\{mp3artist}\{mp3album}\{mp3track|#2} {mp3title}.mp3"
Copy MOVE * TO "%RENAME_TARGET%"
Go PATH ".." DUALPATH "%RENAME_TARGET%"
rmdir {$OriginalSource}

@script vbscript
Option Explicit

Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")

Dim Shell
Set Shell = CreateObject("WScript.Shell")

Dim EnvVars
Set EnvVars = Shell.Environment("PROCESS")
EnvVars("RENAME_TARGET") = "zzzzz:\"

Function Rename_GetNewName(strFileName, strFilePath, fIsFolder, strOldName, ByRef strNewName)

   ' Fix any double \ chars resulting from empty tags (e.g. no genre).
   ' If we don't do this, things can get confused about the destination path.

   strNewName = Replace(strNewName, "\\", "\")

   ' Set the %RENAME_TARGET% environment variable to the folder we're moving the file to.
   ' This can be used in the main command above to go to the folder.
   ' Note that we use "@noexpandenv" at the top of the command; if we didn't then %RENAME_TARGET%
   ' would be expanded *before* this script had run, which obviously would not work.

   EnvVars("RENAME_TARGET") = fs.GetParentFolderName(strNewName)

End Function

Re: Schalter für Erstellung von Ordnern nach ID-Tag

Verfasst: 8. Jan 2013 13:40
von scsippc
Vielen herzlichen Dank! Genau das habe ich gesucht. Hat mir sehr geholfen.