Per Batchdatei bestimmtes Stringteil löschen...

Lapje

Lieutenant
Registriert
Dez. 2008
Beiträge
912
Hallo zusammen...

Um meine TV-Aufnahmen auf meinem Tab anschauen zu können, muss ich mir die AC3-Spuren in MP3 umwandeln (sonst ruckelts)...das mache ich alles per Batchdatei. Zuerst wird die AC3-Spur in WAV umgewandelt, normalisiert und anschließend in MP3 gewandelt. Das klappt alles wunderbar. ein Problem hat das ganze: nach den verschiedenen Durchläufen wird immer die aktuelle Endung angehängt, was bedeutet, dass das File am Ende so ausschaut:

xyz.AC3.WAV.mp3

Jetzt möchte ich aus dem File das .AC3.WAV rausschneiden.

Wie machen ich das am besten? Wie wäre die Anweisung dafür?

Besten dank schon mal...

Lapje
 
ich würde das mit ner for-SChleife machen. Als Trennungszeichen nimmst du den "." und schneidest halt nur das 3 und 4 token raus ;)


EDIT: natürlichn die SChleife dann mit dem rename-Befehl füllen
 
Nach den "." trennen und dann rename mit den entsprechenden Dateinamen und Endungen.
Dann hast du ja die einzelnen Elemente und kannst dir damit den Namen wieder zusammensetzen und fertig.
 
UNd wie trenne ich das da?

Die Schleife habe ich schon mal:

Code:
for %%I in (*.AC3.WAV.mp3) do (

)

Er soll also alle File mit der obigen Endung nehmen und da dann das .AC3.WAV entfernen...

Ich hab mal mit den Wildcards versucht das hinzubekommen, aber das endete nur in einer Fehlermeldung, dass die Datei nicht vorhanden sei...

in PHP würde ich bei so etwas einfach mit explode() arbeiten...gibt es hier auch so etwas?
 
Zuletzt bearbeitet:
Gib mal for /? ein und guck dir "tokens" an. Das kannst du eigentlich mit einer for Schleife komplett erledigen.

Grüße
 
Du musst mit Delimitern arbeiten, um den Mittelteil rausschneiden zu können.

Also delims=. um den . als Trennzeichen zu definieren. Danach kannst du mit tokens auf die einzelnen Teile zugreifen.


Code:
FOR /F "tokens=1,2,3,4 delims=." %i IN ('dir *.ac3.wav.mp3 /b') DO @ren "%i.%j.%k.%l" "%i.%l"

Büddeschön
 
Zuletzt bearbeitet:
@atomrofler
Leider steht bei mir da nichts von Tokens

E:\Test Batch>for /?
Führt einen Befehl für jede einzelne Datei für einen Satz von Dateien aus.

FOR %Variable IN (Satz) DO Befehl [Parameter]

%Variable Ein ersetzbarer Parameter bestehend aus einem einzelnen
Buchstaben.
(Satz) Ein Satz von mindestens einer Datei. Platzhalter sind zulässig.
Befehl Befehl, der für jede Datei ausgeführt werden soll.
Parameter Parameter und Optionen für den angegebenen Befehl.

Um den FOR-Befehl in einem Batchprogramm zu verwenden, geben Sie %%Variable
statt %Variable an. Beachten Sie die Groß-/Kleinschreibung bei Variablen-
namen, %i und %I sind nicht identisch.

Wenn die Befehlserweiterungen aktiviert sind, werden folgende
Ergänzungen für den FOR-Befehl unterstützt:

FOR /D %Variable IN (Satz) DO Befehl [Parameter]

Wenn der Satz Platzhalter enthält, dann bezieht sich der FOR-Befehl
auf Verzeichnisse und nicht auf Dateien.

FOR /R [[Laufwerk:]Pfad] %Variable IN (Satz) DO Befehl [Parameter]


@easy.2ci
dangeschöööön, aber leider bekomme ich die Fehlermeldung:

E:\Test Batch>rename.bat
"i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
E:\Test Batch>FOR /F "tokens=1,2,3,4 delims=." i IN
 
Verwendest du es in einer Batch Datei? Dann ist es natürlich %% anstelle von %

Die Batch geht den aktuellen Ordner durch, wenn du Unterordner berücksichtigt haben möchtest musst du den dir-Befehl um /s erweitern
 
jetzt funzt es...super...besten dank dafür..;-)

Und wieder was gelernt...
 
Zurück
Oben