Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Dateien Umbenennen mit BAT oder VBS

Frage Entwicklung Batch & Shell

Mitglied: RalfSte

RalfSte (Level 1) - Jetzt verbinden

08.03.2006, aktualisiert 18.03.2006, 14144 Aufrufe, 14 Kommentare

Hi zusammen,
Ich habe hier einige Verzeichnisse mit *.mp3 bei denen ich die Dateien am liebsten per VBS Umbenennen möchte.
Es sollen von den *.mp3 Dateien die jeweils ersten 3 bis 6 Zeichen mit Hilfe einer Messagebox "Abgeschnitten" werden. Ich bin schon seit mehreren Tagen am googlen, dreh mich aber im Kreis und finde nichts. Es geht also darum die Nummerierung die immer wieder anders ist (01 , 03 - , 04, #05-, 6--, aa , u.s.w.) vor dem Interpreten Abzuschneiden.

Der VBScript oder der DOS-Batch soll in das Verzeichnis Kopiert werden (per Hand) und dort (per doppelklick) ausgeführt werden. Es ist also nicht immer ein Fester Verzeichnisname.

Es Existieren bereits zwei Dateien (Tracklist.txt und Playlist.m3u) mit (Verz.Name - Tracklist.txt) und ohne (Verz.Name - Playlist.m3u) Nummerierung. Diese sollen auch bestehen bleiben.

Ein Externes Programm wie Joe oder swFNP oder ähnliches kommt nicht in Frage da dieser Script auf Verschiedenen Rechnern laufen soll (alle min. Win2000).

Eine VBS Lösung würde ich Vorziehen, da ich zum Erstellen der Tracklist und Playlist bereits eine VBA Lösung habe. Beide Scripte würde ich dann in Zukunft zu einer Zusammenziehen. Momentan bin ich aber schon froh wenn ich das ohne Externes Programm überhaupt gebacken bekomme.

Bin für jede Lösung, Idee, Link oder Ansatz dankbar, bzw ist das überhaupt machbar?

Ralf
Mitglied: TobiasNYC
08.03.2006 um 20:01 Uhr
Probiere doch mal den TotalCommander, ist sogar Free- oder Shareware.
Darin enthalten ist auch ein Mehrfach-Umbenenn-Tool (Menü: > Dateien > Mehrfach-Umbenenn-Tool)
Bitte warten ..
Mitglied: RalfSte
08.03.2006 um 20:47 Uhr
Hi Tobias,
Du Verstehst das Problem nicht.
Tools die diese Aufgabe erledigen gibt's Haufenweise. Das weiß ich selbst.
Aber Irgendwie Erledigen diese Tools die Aufgabe auch.
Ich möchte dieses nun aber mit einem VBS oder einem DOS Script erledigen.
Das dieses nicht leicht wird, ist mir auch bewußt, aber genau darin liegt doch die Herausforderung.
Oder bin ich der erste der über etwas stolpert das mit VBS nicht möglich ist?
Dabei war so ziemlich das erste was ich über VBS gelesen hab das damit alles möglich sei.

Nur wie???

Ralf
Bitte warten ..
Mitglied: Biber
08.03.2006 um 20:53 Uhr
Moin Ralf,

nun werde erst mal ruhiger.. ist sowohl mit Batch wie VBS alles lösbar.. aber die Anforderung ist mir nur teilweise einleuchtend. Würde ich gern vorher klären.

Der VBScript oder der DOS-Batch soll in das Verzeichnis Kopiert werden (per Hand)
Warum datt denn??? Reicht doch, wenn der batch/der VB-Schnipsel auf dieses Verzeichnis angewendet werden würde? Wer löscht denn die 27394 Kopien von FormatPlaylist.bat oder FormatPlaylist.vbs wieder aus allen Unterverzeichnissen?? Du??

und dort (per doppelklick) ausgeführt werden.
Öhmm... wäre es dann nicht sinnvoller, in den Explorer einen zusätzlichen Befehl in das Kontextmenü für das Verzeichnis einzutragen?
Es ist also nicht immer ein Fenster Verzeichnisname.
Selbst das wäre aber zumutbarer..

Es Existieren bereits zwei Dateien (Tracklist.txt und Playlist.m3u)
mit (Verz.Name - Tracklist.txt) und
ohne (Verz.Name - Playlist.m3u) Nummerierung.
Okay...
Diese sollen auch bestehen bleiben.
ööööhm... wenn die so bestehen bleiben, stimmen doch aber die Dateinamen nicht überein, oder überseh ich etwas?

Wenn Du es in Dein VBA-Krams einfügen willst, wäre es schon das Sinnvollste, wenn Du die relevanten Codeschnipsel hier postest, denn das Glattziehen und Umbenennen der *.mp3's sollt ja schon VOR der dem Schreiben der Tracklist/PlayList erfolgen IMHO.

Außerdem - wenn Du hier Deine Codeschnipsel postest, ersparst Du Dir solche Antworten wie "Nimm doch den TotalCommander.."

Gruß Biber
Bitte warten ..
Mitglied: TobiasNYC
08.03.2006 um 21:24 Uhr
Verständnis kann man nur anhand von einleuchtenden Informationen aufbauen.
Warum einfach wenn´s auch kompliziert geht, dachte ich zu Anfang, aber anscheinend hast Du sehr präzise Vorstellung deines Vorhabens.

Leider bin ich kein VBS Experte, deshalb entschuldige ich mich für meine Kommentare. . . .sorry
Bitte warten ..
Mitglied: RalfSte
08.03.2006 um 22:33 Uhr
Hi Biber,
Folgende Situation:
Bisher habe ich einfach per *.bat eine Tracklist erstellt die ich danach in einem Editot (ConTEXT) Bearbeitet hab um diees als Playlist.m3u Abzuspeichern.
Danach habe ich ein Filerenamer (swFNP) eingesetzt um die *.mp3 der Playlist entsprechend anzupassen.
Wie Du sicherlich schon bemerkt hast, doch ein wenig Primitiv.
nun habe ich (mit viel Hilfe) ein VBS das mir die Schritte Playlist.m3u sowie Tracklist.txt mit davorstehendem Verzeichnisnamen abnimmt.
Mein Grundgedanke ist der das die *.mp3 den Namen bekommen sollen der auch in der Playlist.m3u steht um nicht das Programm einsetzen zu müssen.
Währ meiner meinung nach die Krönung (oder das i Tüpfelchen) vom machbaren.
Hier nun aber erst mal der VBScript wie er momentan aussieht:



Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFso.GetFolder(".")
Set oFiles = oFolder.Files

Dim MP3s(), n

n = 0
For Each oFile in oFiles
If LCase(Right(oFile,4))=".mp3" Then
ReDim Preserve MP3s(n)
MP3s(n) = oFile.Name
n = n+1
End If
Next

If n>0 Then
AbZeichen = 1 + InputBox("Es wurden " & n & " .mp3 Dateien gefunden. Wieviele Zeichen sollen jeweils vom Anfang weggeschnitten werden?",,0)
If AbZeichen < 1 Then AbZeichen = 1

quicksort MP3s, 0, n-1

sPlaylist = oFso.getbasename(oFso.getparentfoldername(wscript.scriptfullname)) & " - Playlist.m3u"
sTracklist = oFso.getbasename(oFso.getparentfoldername(wscript.scriptfullname)) & " - Tracklist.txt"

Set o=oFso.opentextfile(sPlaylist,2,true)
For i = 0 to n-1
o.writeline Mid(MP3s(i),AbZeichen)
Next
o.close

Set o=oFso.opentextfile(sTracklist,2,true)
For i = 0 to n-1
o.writeline Mid(MP3s(i),1) 'hier kann man bei Bedarf auch noch was löschen
Next
o.close

MsgBox "Es wurden " & n & " .mp3 Dateien gefunden!"
Else
MsgBox "Es wurden keine MP3s gefunden!"
End If

Sub quicksort (mArray, FromPos, ToPos)
i = FromPos
j = ToPos
p = mArray((i+j)/2)
Do
For i = i to j
If StrComp(mArray(i), p, 1) >= 0 Then Exit For
Next
For j = j to i step -1
If StrComp(mArray(j), p, 1) <= 0 Then Exit For
Next
If i <= j Then
t = mArray(i)
mArray(i) = mArray(j)
mArray(j) = t
i = i+1
j = j-1
End if
Loop Until i > j
If FromPos < j Then quicksort mArray, FromPos, j
If ToPos > i Then quicksort mArray, i, ToPos
End Sub



Der Script soll "zu Fuß" in das Entsprechende Verzeichnis kopiert werden und nach der Kontrolle (Tracklist steht alles drinn? und Playlist Spielt alles? auch manuel wieder gelöscht werden. Frag Bitte nicht warum, ist einfach so. Ich bin da etwas Altmodisch eingestellt, bin aber Bereit mir alle anderen Vorschläge anzuschauen und mich überzeugen zu lassen. Der Manuelle Weg ist aber erst mal Grundvoraussetzung.

Um mich nicht allzuhäufig zu wiederhohlen, Probiers einfach aus, und Du wirst das Problem sofort erkennen.

Da ich in sachen VBS noch in den Kinderschuhen stecke,bin ich also auf Hilfe, möglichst Kommentiert angewiesen. Sonst hab ich das Ding erst einigermaßen zum laufen wenn schon wieder Geschenke unterm Baum liegen...

Ralf
Bitte warten ..
Mitglied: 16568
08.03.2006 um 22:37 Uhr
Da stimme ich Dir zu: VBS ist genauso wie Batch sehr mächtig


Lonesome Walker
Bitte warten ..
Mitglied: RalfSte
10.03.2006 um 09:29 Uhr
Hallo Zusammen,
hat denn wirklich niemand eine Idee wie ich das Vorhaben mit VBS oder BAT lösen könnte?
Kann doch gar nicht sein das es gar nicht geht.

Ralf
Bitte warten ..
Mitglied: 16568
10.03.2006 um 11:04 Uhr
Mkay, dann frage ich jetzt mal genauer:

Was willst Du?
Du willst, das irgendwie ein VB-Script (oder Batch) irgendwas von einer Datei "wegschneidet".
Ist das immer gleich viel, was er wegschneiden soll?

Wie Biber oben schon erwähnt hat, wäre es viel einfacher, das Script in das Kontext-Menü zu integrieren; dann mußt Du nur auf den Ordner klicken, und dann frägt er Dich:

01.
"Es wurden " & n & " .mp3 Dateien gefunden. Wieviele Zeichen sollen jeweils vom Anfang weggeschnitten werden?"
Zusätzlich erstellt es Dir eine Tracklist.txt und einePlaylist.m3u im Anschluß



Lonesome Walker
PS: Ich nutze für so eklige Sachen wie Musikverwaltung gerne Musicmatch; kostet 20,- ?uroen, macht aber die ganze Arbeit binnen 10 Sekunden...
(jaaaaaa, ich weiß, ich soll keine Schleichwerbung machen, und Geld ausgeben will ja nie jemand..)
Bitte warten ..
Mitglied: RalfSte
10.03.2006 um 13:03 Uhr
Hi Lonesome Walker.
ich Versuch mal zu Antworten.

>Mkay, dann frage ich jetzt mal genauer:

>Was willst Du?
>Du willst, das irgendwie ein VB-Script (oder Batch) irgendwas von einer
Datei "wegschneidet".
!!! Ja, genau das will ich. Und zwar am Anfang des Dateinamens.

>Ist das immer gleich viel, was er wegschneiden soll?
!!! Nein, es können min.3 Zeichen bis zu wasweisichwieviel Zeichen sein.

Wie Biber oben schon erwähnt hat, wäre es viel einfacher, das Script in das Kontext-Menü
zu integrieren; dann mußt Du nur auf den Ordner klicken, und dann frägt er Dich:
"Es wurden " & n & " .mp3 Dateien gefunden. Wieviele Zeichen sollen jeweils vom Anfang
weggeschnitten werden?"
!!! OK, damit könnte ich mich auch anfreunden. Klingt Interrisant. Bisher habe ich mir auch schon x-rename angeschaut, ist aber nicht für diesen Zweck geeignet.

>Zusätzlich erstellt es Dir eine Tracklist.txt und einePlaylist.m3u im Anschluß
!!!Das währe dann selbstverständlich, aber die Tracklist.txt mit vorstehendem Verzeichnisnamen und der Nummerierung wie es vor dem Kürzen steht.
Eben genau so wie es der Script oben macht.

Ist das Machbar?

Ralf
Bitte warten ..
Mitglied: 16568
10.03.2006 um 14:01 Uhr
Öhm, langsam:

die Tracklist soll den gesamten Pfad und die alten Dateinamen enthalten?


Alles andere ist machbar; ich guck grade mal



Lonesome Walker
PS: Erwarte aber keine Antwort vor 23:00 Uhr; ich guck' hier nur gelegentlich rein.
Sowas muß ich schreiben, wenn ich ma Freizeit hab ^^
Bitte warten ..
Mitglied: RalfSte
10.03.2006 um 20:58 Uhr
die Tracklist soll den gesamten Pfad und die alten Dateinamen enthalten?

NEIN!!!
Nicht das wir uns Falsch Verstehen.
Die Tracklist soll den Namen des Verzeichnisses haben, einen Bindestrich und dann Tracklist.txt oder Playlist.m3u
Also z.B.
Nena - Wunder Geschehn - Tracklist.txt
und
Nena - Wunder Geschehn - Playlist.m3u
Vollständiger Verzeichnispfad ist z.B. C:\ Eigene Dateien\Eigene Musik\Nena\Nena - Wunder Geschehn
oder aber z.B. D:\Mucke\Nena - Wunder Geschehn
oder sonstwo auf den Festplatten (Partitionen).

Die Einzeltitel sollen in der Tracklist Nummeriert sein wie vor der Änderung der Einzeltitel,
und die Playlist soll nur Interpret und Titel auswerfen.

Der Script oben schaft dieses.
Danke für Deine Hilfe.

Ralf
Bitte warten ..
Mitglied: RalfSte
17.03.2006 um 09:38 Uhr
Hallo zusammen,
da ich mit meinem Problem leider immer noch nicht weiter bin, wollt ich mich noch mal in Erinnerung bringen.

Hat von Euch inzwischen jemand eine Idee um mein Vorhaben zu Verwirklichen???

Ralf
Bitte warten ..
Mitglied: Biber
18.03.2006 um 16:36 Uhr
Moin RalfSte,

ich bin immer noch nicht ganz sicher, ob ich Deine Anforderung verstehe.
Jedenfalls verstehe ich nicht so recht die Schwierigkeit der Aufgabe.
Ich bin nun nicht der VBS-Crack, aber selbst wenn ich den Umweg über einen VBS-Schnipsel gehe statt es mit zwei,drei Batchzeilen zu machen, halte ich für lösbar (oder habe es eben nicht verstanden).

Deshalb nochmal an einem schnellen Beispiel. Wenn ich ein Verzeichnis "Z:\Lena - Wunden geschehen" habe mit folgenden *.mp3's

$cmd$dir /b *.mp3
03 - Lena Ich sing noch mehr.mp3
04 - Lena Bin ganz heiser.mp3
#08 - Lenas Papa - Summt mit.mp3
17 Hans Wurst - Nochn Song.mp3
11---Hans Wurst - Ein Song.mp3
aaHansiWurst DrittSong.mp3
02 - Lena Ich singe mehr.mp3
01 - Lena Ich singe was.mp3

...und ich jage den unten geposteten Schnipsel drüber
Z:\Lena - Wunden geschehen>
$cmd$cscript //nologo z:\Mp3List.vbs

--> dann erhalte ich
(--Inhalt "Lena - Wunden geschehen - Playlist.m3u")
Lenas Papa - Summt mit.mp3
Lena Ich singe was.mp3
Lena Ich singe mehr.mp3
Lena Ich sing noch mehr.mp3
Lena Bin ganz heiser.mp3
Hans Wurst - Ein Song.mp3
Hans Wurst - Nochn Song.mp3
HansiWurst DrittSong.mp3

..und
(--Inhalt "Lena - Wunden geschehen - Tracklist.txt")
#08 - Lenas Papa - Summt mit.mp3
01 - Lena Ich singe was.mp3
02 - Lena Ich singe mehr.mp3
03 - Lena Ich sing noch mehr.mp3
04 - Lena Bin ganz heiser.mp3
11---Hans Wurst - Ein Song.mp3
17 Hans Wurst - Nochn Song.mp3
aaHansiWurst DrittSong.mp3

Ist das so das, was Du meintest?
Sonst ändere an diesem Beispiel bitte noch mal den SOLL-Output.

Der angepasste Schnipsel:
'-------snipp Mp3List.vbs
Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFso.GetFolder(".")
Set oFiles = oFolder.Files

Dim MP3s(), n

n = 0
For Each oFile in oFiles
If LCase(Right(oFile,4))=".mp3" Then
ReDim Preserve MP3s(n)
MP3s(n) = oFile.Name
n = n+1
End If
Next

If n=0 Then
MsgBox "Es wurden keine MP3s gefunden!"
quit
End if

quicksort MP3s, 0, n-1
sPlaylist = oFolder.Name & " - Playlist.m3u"
sTracklist = oFolder.Name & " - Tracklist.txt"

Set oP=oFso.opentextfile(sPlaylist,2,true)
Set oT=oFso.opentextfile(sTracklist,2,true)

For i = 0 to n-1
oT.writeline MP3s(i) 'In der Tracklist ist der Dateiname Eins zu Eins
intDelimpos= Instr(Left(Mp3s(i), 6), "-")
IF intdelimpos = 0 then intDelimpos = Instr(Left(Mp3s(i), 6), " ")
Do while ( Mid(Mp3s(i),intdelimpos+1,1)=" " or Mid(Mp3s(i),intdelimpos+1,1)="-")
intDelimPos=intDelimpos+1
Loop
If intdelimpos= 0 then
intdelimpos=InputBox ("Titel '"& left(Mp3s(i),25) & "....'" & vbCRLF _
& "Wieviele Zeichen sollen jeweils vom Anfang weggeschnitten werden?",_
"Kein Delimiter erkennbar",0)
end if
oP.writeline Mid(MP3s(i),intdelimpos+1) ' Playlist.. ohne Prefix/TrackNo
Next
oP.close
oT.close
'------------ Unchanged ab hier
MsgBox n & " .mp3 Dateien in Tracklist/Playlist " & sTracklist & "/.m2u geschrieben."

Sub quicksort (mArray, FromPos, ToPos)
i = FromPos
j = ToPos
p = mArray((i+j)/2)
Do
For i = i to j
If StrComp(mArray(i), p, 1) >= 0 Then Exit For
Next
For j = j to i step -1
If StrComp(mArray(j), p, 1) <= 0 Then Exit For
Next
If i <= j Then
t = mArray(i)
mArray(i) = mArray(j)
mArray(j) = t
i = i+1
j = j-1
End if
Loop Until i > j
If FromPos < j Then quicksort mArray, FromPos, j
If ToPos > i Then quicksort mArray, i, ToPos
End Sub
' end of Mp3list.vbs-Skizze

Tut mir Leid, dass ich da so begriffsstutzig bin, aber ich versteh nicht, an welcher Stelle Du hängst.
HTH
Biber
Bitte warten ..
Mitglied: 16568
18.03.2006 um 17:33 Uhr
Ich ehrlich gesagt auch nicht

Und ich mach' eine Menge Schei* mit VBS...



Lonesome Walker
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
Mehrere.csv Dateien zusammenfügen zu einer Datei mit bat (4)

Frage von Piotrney zum Thema Batch & Shell ...

Microsoft Office
gelöst Per VBA im Verzeichniss dateien mit Wildcard umbenennen (4)

Frage von usenussi zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...