Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Probleme ein Playlist-Script anzupassen

Mitglied: klattyzz

klattyzz (Level 1) - Jetzt verbinden

07.02.2007 um 13:53 Uhr, 2687 Aufrufe

Ich brauche ein wenig Hilfe beim Ändern eines Playlist Scripts:

Das sollte das Script können:
Ich hab meine MP3s wie folgt sortiert: "Artist - Album\01 - Artist - Song.mp3" (1-CD-Album) oder "Artist - Album\CDx\01 - Artist - Song.mp3" (Mehr-CD-Alben; x steht für die Disc-Nummer)

Also, ich möchte die Playlisten über das Kontextmenü automatisch erstellen und sie im Album-Ordner speichern... das funktioniert auch prima bei 1-CD-Alben, allerdings nicht bei Alben-Ordnern, die die Unterordner CD1, CD2, CD3, CD4, usw. enthalten.

Wie ist es nun möglich die Playlisten der einzelnen CDs (bei Mehr-CD-Alben) in den CDx-Ordnern zu speichern und gleichzeitig wie folgt zu benennen: "00 - Artist - Album - CDx.m3u"?

Vielen Dank schonmal für eure Hilfe...

Hier ist mein bisheriges Script:

'*
'BEGIN
'
*
Option Explicit
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, WshShell, cptTot, objArgs, arrFiles(), sExtToGet
Dim driveLetter, pathToScan, fold, nTime, sAppName
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
sAppName = "Mp3Playlister - Recursive playlist generator"
'-- lowercase file extension to search for
sExtToGet = "mp3"
Set objArgs = WScript.Arguments
if ( objArgs.Count = 0 ) then
WshShell.Popup "You must specify a directory. ", 5, sAppName, 48
WScript.Quit
end if
pathToScan = objArgs(0)
nTime = Timer
'-- start scanning
Call startScanning()
'-- clean
Set fso = nothing
Set WshShell = nothing
'*
'END
'
*

'*
'FUNCTIONS:
'
*
Sub startScanning()
Dim i, cpt, playlistPath
cptTot = 0
If fso.FolderExists(pathToScan) Then
ReDim arrFiles(0)
Set fold = fso.Getfolder(pathToScan)
playlistPath = fold.path &"\00 - "& fold.Name & ".m3u"
'-- recurse folder
Call DoIt(fold)
Else
WshShell.Popup "Folder """& pathToScan &""" does not exist. ", 5, sAppName, 48
Wscript.quit
End If

'-- save playlist if more than 0 entry in it
If (UBound(arrFiles) > 0) Then
Call Quicksort(arrFiles,0,cptTot-1)
Call createAndSavePlaylist(arrFiles, playlistPath)
End If

End Sub
'*
Sub AddFiles(fold)
'-- process all mp3 files in the fold folder
Dim strExt, mpFiles, strName, foldName, foldPath, f

foldPath = fold.Path
Set mpfiles = fold.Files

For each f in mpfiles
strName = f.Name
strExt = LCase(fso.GetExtensionName(strName))
If strExt = sExtToGet Then
arrFiles(cptTot) = UCase(Left(strName, 1)) & Mid(strName,2,Len(strName))
ReDim Preserve arrFiles(UBound(arrFiles)+1)
cptTot = cptTot + 1 '-- global counter for processed files
End If
Next
End Sub
'*

Sub createAndSavePlaylist(arrFiles, playlistPath)
Dim txt, txtFile

'-- create m3u file (ASCII)
If Not fso.FileExists(playlistPath) Then
Set txtFile = fso.CreateTextFile(playlistPath,true,false) 'ASCII !!
End If
Set txtFile = fso.GetFile(playlistPath)
Set txt = txtFile.OpenAsTextStream(ForWriting, 0) 'ForWriting , 0 for ASCII (-1 for Unicode)
'-- write m3u entries
txt.write Join(arrFiles,vbCrLf)
txt.close
Set txtFile = nothing
End Sub
'*

Sub DoIt(fold)
'-- recursive scan
Dim sfold, sfoo
Call AddFiles(fold) 'process files in current folder
Set sfold = fold.subfolders
for each sfoo in sfold 'process files in subfolders
Call DoIt(sfoo)
Next
End Sub
'*
Sub QuickSort(vec,loBound,hiBound)
Dim pivot,loSwap,hiSwap,temp
'== This procedure is adapted from the algorithm given in:
'== Data Abstractions & Structures using C++ by
'== Mark Headington and David Riley, pg. 586
'== Quicksort is the fastest array sorting routine for
'== unordered arrays. Its big O is n log n
'== Two items to sort
if hiBound - loBound = 1 then
if vec(loBound) > vec(hiBound) then
temp=vec(loBound)
vec(loBound) = vec(hiBound)
vec(hiBound) = temp
End If
End If
'== Three or more items to sort
pivot = vec(int((loBound + hiBound) / 2))
vec(int((loBound + hiBound) / 2)) = vec(loBound)
vec(loBound) = pivot
loSwap = loBound + 1
hiSwap = hiBound

do
'== Find the right loSwap
while loSwap < hiSwap and vec(loSwap) <= pivot
loSwap = loSwap + 1
wend
'== Find the right hiSwap
while vec(hiSwap) > pivot
hiSwap = hiSwap - 1
wend
'== Swap values if loSwap is less then hiSwap
if loSwap < hiSwap then
temp = vec(loSwap)
vec(loSwap) = vec(hiSwap)
vec(hiSwap) = temp
End If
loop while loSwap < hiSwap

vec(loBound) = vec(hiSwap)
vec(hiSwap) = pivot

'== Recursively call function .. the beauty of Quicksort
'== 2 or more items in first section
if loBound < (hiSwap - 1) then Call QuickSort(vec,loBound,hiSwap-1)
'== 2 or more items in second section
if hiSwap + 1 < hibound then Call QuickSort(vec,hiSwap+1,hiBound)
End Sub 'QuickSort
'*
Ähnliche Inhalte
Batch & Shell

Powershellskript um AD-Gruppenmitgliedschaften eines Benutzers auf einen anderen anzupassen

gelöst Frage von igetyaallBatch & Shell1 Kommentar

Hallo Administratoren, folgender Wunsch: Ich möchte ein Skript schreiben, welches die AD-Gruppen eines Users ausliest, diese Ausgabe als Grundlage ...

Batch & Shell

Ordnerstruktur aus Playlist per Batch wiederherstellen

gelöst Frage von MooswitzBatch & Shell4 Kommentare

Hallo zusammen! Ich habe seit langem eine Große Musiksammlung und verwalte diese hin- und wieder per Hand. Bisher ging ...

Batch & Shell

Probleme bei der Ausführung eines VB-Scriptes

Frage von AuricGoldfingerBatch & Shell1 Kommentar

Hallo zusammen, ich habe folgendes Script geschrieben: Leider bekomme ich bei der Ausführung den Fehler Was mache ich falsch?? ...

Ubuntu

Streaming-Client für Icecast: mehrere Playlisten?

Frage von ububehUbuntu

Hallo Community, ich steh hier seit Monaten auf dem Schlauch. Ich habe Icecast2-Server am Laufen und möchte diesen gern ...

Neue Wissensbeiträge
Microsoft
Shadow Defender
Tipp von Hyrule vor 8 StundenMicrosoft

Ich denke viele kennen es: Ein Update oder ein neues Programm und vieles funktioniert nicht mehr wie gewünscht. Die ...

Microsoft
Microsoft verarztet 50 Sicherheitslücken
Tipp von Hyrule vor 4 TagenMicrosoft

Microsoft verarztet mal wieder ein "paar" Sicherheitslücken in ihren Produkten: Und mal wieder Remote Code Execution und der abartige ...

Sicherheit

Prüfskript gegen Spectre und Co. wurde erweitert

Tipp von DerWoWusste vor 5 TagenSicherheit

Moin. Get-SpeculationControlSettings sagt sicherlich den meisten etwas. Mit den neuen Spectrevarianten muss man nun weitere Schritte machen, um zu ...

LAN, WAN, Wireless

IPhone und iPad scheinen Verbindungsprobleme mit Unifi v5.7.23 und 802.11r (schnelles Roaming) zu haben

Erfahrungsbericht von StefanKittel vor 8 TagenLAN, WAN, Wireless4 Kommentare

Hallo, vielleicht hilft dieser recht kurze Bericht doch den Einen oder Anderen. Ausgangspunkt Ein Kunde von mir setzt einen ...

Heiß diskutierte Inhalte
Hyper-V
Hyper V startet nicht wenn eine Offline geschaltene HD integriert wird
Frage von DieAzubinneHyper-V11 Kommentare

Hallö, bei einem PC der mit Windows 10 Pro installiert ist habe ich das Problem, dass der Virtuelle PC ...

CPU, RAM, Mainboards
ASUS P5W DELUXE startet nur manchmal und nur mit 2 GraKas
Frage von Windows10GegnerCPU, RAM, Mainboards11 Kommentare

Hallo, ich habe das o.g. Motherboard erhalten. Egal ob C2D 8400, Pentium D 945 oder P4 670, das teil ...

Virtualisierung
Virtuelle Maschinen langsam unabhängig vom Hypervisor
gelöst Frage von HyruleVirtualisierung8 Kommentare

Hallo, ich möchte gerne zwei bis drei virtuelle Maschinen virtualisieren, darauf sollen jeweils Windows 10 und diverse etwas größere ...

Rechtliche Fragen
Vorlage "private Nutzung dienstlicher Mobiltelefone"
Frage von linos2Rechtliche Fragen8 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer Vorlage für die private Nutzung von dienstlichen Mobiltelefonen. Unsere Firma ...