Script maken op 2 files in map te zetten

Status
Niet open voor verdere reacties.

erbicom

Terugkerende gebruiker
Lid geworden
28 okt 2000
Berichten
3.458
Ik kan helaas zelf niet programmeren en wil vragen of hier iemand een script voor me zou kunnen maken.
Wat is de bedoeling: Ik heb een zeer groot aantal karaoke bestanden die bestaan uit steeds 2 files. Een mp3 en een cdg. Voorbeeld: David Bowie - Let's Dance.mp3 en David Bowie - Let's Dance.cdg
Nu staan er enkele duizenden van deze files los in een map op mijn HD.

Wie kan er een script maken die steeds de twee bestanden, met dezelfde naam voor de extensie, bij elkaar zoekt in die grote map, een nieuwe map aanmaakt die de naam krijgt van het mp3 of cdg bestand (Davis Bowie - Let's Dance) en tenslotte de juiste mp3 en cdg daarin knipt/plakt?

Ik hoop dat mijn uitleg duidelijk genoeg is voor iemand die hier ervaring mee heeft.
 
In de C++ sectie :) Dont underestimate the power of the command prompt :)
Natuurlijk eerst testen op een klein deel van je bestanden :)

voor xp/vista en in het geval dat beide bestanden op de extensie na dezelfde naam hebben

maak een bestandje script.cmd aan in de map van de files met de volgende inhoud:

Code:
@echo off
mkdir %1
move %1.* ..\%1\

en wandel daarna in de commandprompt naar de betreffende map en run het volgende commando

Code:
FORFILES -m *.cdg -c "cmd /c script.cmd @FNAME"

Het kan geheid makkelijker en in 1 script maar dit werkt bij mij :)

Uitleg:

Voor alle bestanden (FORFILES) met als masker *.cdg (-m cdg) voer het commando script.cmd uit (-c "cmd /c script.cmd) met als parameter de bestandsnaam zonder extensie (@FNAME")

het script.cmd bestand doet alleen maar "maak een map aan met de 1e parameter achter de bestandsnaam" en verplaats alle bestanden die beginnen met de parameter naar de map met de naam van de parameter
 
Laatst bewerkt:
Mijn excuses voor de late reaktie. Ik ga dit morgen proberen op een aantal testbestanden. Alvast ontzettend bedankt voor de hulp en meedenken. Als ik het allemaal met de hand zou moeten doen zou ik weken bezig zijn. Ik laat zo snel mogelijk weten wat het resultaat is.
 
@ Ellasar: ik heb het geprobeerd, maar ik krijg de melding dat FORFILES niet herkend wordt als externe opdracht, programma of batchbestand. Enig idee wat er mis gaat?
 
Ik heb ondertussen een collega gevraagd iets te maken en hij kwam met een handig vb-scriptje op de proppen:

Dim Fso, Wsh, Fn, Fc, f1
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Wsh = Wscript.CreateObject("Wscript.Shell")

Pad = InputBox("Welk Pad", "Move mp3- en cdg-file naar gelijknamige directories")
If Pad="" Then
Wscript.Quit
End If
If Right(Pad,1)="\" Then
Pad = Left(Pad,Len(Pad)-1)
End If

Set Fn = Fso.GetFolder(Pad)
Set Fc = Fn.Files
For Each f1 in Fc
FileName = f1.name
FolderName = Left(FileName,Len(FileName)-4)
Call PadControle(Pad & "\" & FolderName)
Fso.MoveFile Pad & "\" & FileName, Pad & "\" & FolderName & "\" & FileName
Next

Sub PadControle(strPad)
If Not Fso.FolderExists(strPad) Then
Fso.CreateFolder(strPad)
End If
End Sub

En deze werkt voor mij. Toch bedankt voor het meedenken!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan