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

Entpacken und Umbenennen per Batch

Frage Entwicklung Batch & Shell

Mitglied: Bierkistenschlepper

Bierkistenschlepper (Level 2) - Jetzt verbinden

10.07.2007, aktualisiert 24.07.2007, 6074 Aufrufe, 8 Kommentare

Hallo,

ich weiß es gibt hier schon viele Threads zu einem ähnlichen Thema, aber ich bin in Sachen Batch-Programmierung ein echter Noop.

Folgendes Problem:
Ich habe eine TV-Serie aufgenommen und möchte sie jetzt mit Untertiteldateien aus dem Netz versehen. Diese haben das Format *.srt und sind in Zip-Archiven Nach dem Schema
StaffelxFolge-de-irgendein komischer Code.zip
also z.B. 8x18-de-A41cBAQJTn.zip
Darin enthalten ist dann jeweils eine Datei namens deutsch.srt.

Ich kann sie also nichtmal alle auf einen Rutsch entpacken aufgrund des gleichen Namens. Ziemlich dämlich aber so ist es leider.
Damit das Einbinden der UTs klappt sollten sie den gleichen Namen wie die *.avi-Dateien haben, also z.B.
Stargate SG1 8x18 - Jim.avi

Jetzt die Frage, wäre es irgendwie möglich immer eine Datei zu entpacken (Habe 7-Zip drauf), dann zu gucken zu welcher Folge sie gehört und umzubenennen?

Die Untertitel (zip und srt) sind in einem Ordner subtitles, der ein Unterordner des Filmordners ist.

Ihr könnt euch ja sicher vorstellen, was das jedesmal für eine Klickorgie gibt. Leider bin ich kein Batch-Crack und würde es allerhöchstens auf die Reihe kriegen Dateien nach einem festen Schema umzubenennen. DAs hier jedoch übersteigt meine Kenntnisse gewaltig...

Wäre wirklich nett, wenn einer von euch mir da vielleicht ein kleines Skript bauen könnte
Mitglied: bastla
10.07.2007 um 22:51 Uhr
Hallo Bierkistenschlepper!

Versuch es mal damit:
01.
@echo off & setlocal 
02.
pushd "D:\Film\subtitles" 
03.
set "srtFile=deutsch.srt" 
04.
for %%i in (*.zip) do call :ProcessFile "%%i" 
05.
popd 
06.
goto :eof 
07.
:ProcessFile 
08.
for /f "delims=-" %%f in ('echo %~1') do set Folge=%%f 
09.
set Film= 
10.
for %%a in ("..\* %Folge%*.avi") do set "Film=%%~na" 
11.
::Entsprechende Filmdatei vorhanden? 
12.
if not defined Film goto :eof 
13.
7za e %1 %srtFile% 
14.
::srt-Datei vorhanden? 
15.
if not exist %srtFile% goto :eof 
16.
ren %srtFile% "%Film%.srt" 
17.
::zip.Datei auch umbenennen 
18.
ren %1 "%~1.done" 
19.
goto :eof
Damit es klappen kann, muss neben den von Dir genannten Voraussetzungen ("subtitles" liegt unterhalb des "Film"-Verzeichnisses - dieses bitte in Zeile 2 anpassen; Folge ist erster Namensbestandteil der .zip-Datei) auch gelten: Die Folge ist im Namen der .avi-Datei nach einer Leerstelle enthalten (also nicht etwa "Stargate SG18x18 - Joe.avi") - die Leerstelle dient zum ev nötigen Unterscheiden der Folgen 1x18 und 11x18 (obwohl es dieses Problem bei "Stargate" nicht geben wird).

Wenn eine übereinstimmende .avi-Datei gefunden wurde und aus der .zip-Datei eine "deutsch.srt" extrahiert werden konnte (ev musst Du für die 7za.exe den gesamten Pfad angeben, also etwa "C:\Utils\7zip\7za.exe"), wird die .srt-Datei entsprechend umbenannt und die .zip-Datei erhält den Zusatz ".done", um sie von nicht verarbeiteten .zip-Dateien unterscheidbar zu machen.

Grüße
bastla
Bitte warten ..
Mitglied: Bierkistenschlepper
11.07.2007 um 08:21 Uhr
Du bist ein Schatz
Meine linke Maustaste wird es dir danken!!

Ich habe gerade nichts umzubenennen da, aber wenn ich die nächste Staffel überspiele werde ich es testen und Bericht erstatten!

Noch eine Frage, wo muss denn der Pfad zu 7-Zip hin?
Bitte warten ..
Mitglied: bastla
11.07.2007 um 08:46 Uhr
Hallo Bierkistenschlepper!

wo muss denn der Pfad zu 7-Zip hin?
Den Speicherort für die "7za.exe" kannst Du selbst festlegen - wenn Du sie im Windows- (oder einem anderen in %path% enthaltenen) Verzeichnis ablegst, brauchst Du gar keinen Pfad anzugeben.

Grüße
bastla
Bitte warten ..
Mitglied: Bierkistenschlepper
11.07.2007 um 08:47 Uhr
Muss die denn nicht im 7Zip-Ordner unter C:\Programme sein?
Bitte warten ..
Mitglied: Biber
11.07.2007 um 09:07 Uhr
Muss die denn nicht im 7Zip-Ordner unter C:\Programme sein?
Hätte bastla dann zeilenweise das geschrieben, was er geschrieben hat?

bastla gibt ja durchaus Antworten und Lösungen.
Bitte so etwas dann auch einfach mal gebührend behandeln.
Also Lesen - Sacken lassen - nochmal lesen - testen - erst danach nochmal ungläubig fragen...



Grüße
Biber
Bitte warten ..
Mitglied: bastla
11.07.2007 um 09:28 Uhr
@Biber
Du bist aber heute wieder streng ...

@BKS
Die Commandline-Variante von 7-Zip gibt es auch als eigenen Download (Entschuldigung, hatte oben nur den Download-Link gesetzt, aber nicht darauf hingewiesen), und da diese keiner "Installation" bedarf, kannst Du einfach die "7za.exe" in einen passenden Ordner legen ...

[Edit] Nachtrag: Wenn Du aber "7za.exe" durch "7z.exe" ersetzt (mit der GUI-Version mitgeliefert - habe ich gerade erst festgestellt), müsste es auch gehen - dann gilt auch der von Dir genannte Pfad. [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Bierkistenschlepper
24.07.2007 um 14:39 Uhr
Es klappt einwandfrei!!! Allerdings heißt die Datei bei mir 7z.exe. Keine Spur von einem a. Ich habe die dann einfach umbenannt.

Darf ich dein Skript weitergeben an die Webseite http://subtitles.stargate-sg1.hu/, dort gibt es nämlich die Untertitel und die haben bestimmt verwendung dafür

Sag mir doch einfach Bescheid!
Bitte warten ..
Mitglied: bastla
24.07.2007 um 14:50 Uhr
Hallo BKS!

Das Umbenennen wäre gar nicht erforderlich gewesen - siehe oben ...

Darf ich dein Skript weitergeben ...
Klar.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Winrar entpacken - Probleme bei Pfad (7)

Frage von Concurve zum Thema Batch & Shell ...

Batch & Shell
gelöst 1 PDF duplizieren und umbenennen nach CSV mittels Batch (5)

Frage von Kalisser zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...