Filmesammlung benennen via batch datei
Hi, also um es gleich vorwegzunehmen: Das Problem, das ich hier beschreibe, ist nicht mein eigenes sondern von jemandem, der wenig ahnung von PCs hat und ich daher in seinem namen diese frage hier eröffne. 2.: Ich selbst habe leider absolut keine ahnung von batch und shell scripten. ansatzweise habe ich mich mal mit der Programmiersprache Pascal / Delphi beschäftigt, aber das ist schon ein gutes Jahr her und viel verstanden habe ich aufgrund des Lehrers leider auch nicht.
Also nun zum Problem:
Ich habe eine Filmesammlung, die aus folgendem besteht: einer *.avi Datei, die den Film an sich beinhaltet, sowie ein Cover / mehrere Cover und eine Infodatei. Diese lege ich in folgendem Ordnersystem ab: Filme > [Genre] > FILMDATEI - [Filmtitel] > [Filmtitel].avi ; Filme > [Genre] > COVER - [Filmtitel] > *.jpg; *.png; usw. ; Filme > [Genre] > INFO - [Filmtitel] > *.nfo; *.txt; usw.
Nun will ich automatisiert die Ordnerstruktur innerhalb des [Genre]-Ordners anlegen, und zwar generiert aus dem dateinamen der [Filmtitel].avi.
Habe ich das verständlich erklärt oder nicht? Bitte fragt zurück, wenn irgendwas unklar ist!
Ansonsten Danke schon mal im Voraus,
MfG kingspride
Also nun zum Problem:
Ich habe eine Filmesammlung, die aus folgendem besteht: einer *.avi Datei, die den Film an sich beinhaltet, sowie ein Cover / mehrere Cover und eine Infodatei. Diese lege ich in folgendem Ordnersystem ab: Filme > [Genre] > FILMDATEI - [Filmtitel] > [Filmtitel].avi ; Filme > [Genre] > COVER - [Filmtitel] > *.jpg; *.png; usw. ; Filme > [Genre] > INFO - [Filmtitel] > *.nfo; *.txt; usw.
Nun will ich automatisiert die Ordnerstruktur innerhalb des [Genre]-Ordners anlegen, und zwar generiert aus dem dateinamen der [Filmtitel].avi.
Habe ich das verständlich erklärt oder nicht? Bitte fragt zurück, wenn irgendwas unklar ist!
Ansonsten Danke schon mal im Voraus,
MfG kingspride
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189699
Url: https://administrator.de/contentid/189699
Ausgedruckt am: 08.11.2024 um 05:11 Uhr
19 Kommentare
Neuester Kommentar
Hi Kingspride,
und wo ist jetzt die Frage?
Du hast die Ordnerstruktur schon komplett und die passenden Teile dort einsortiert.
Oder willst du statt:
Filme > [Genre] > FILMDATEI - [Filmtitel] > [Filmtitel].avi ;
Filme > [Genre] > COVER - [Filmtitel] > *.jpg; *.png; usw. ;
Filme > [Genre] > INFO - [Filmtitel] > *.nfo; *.txt; usw.
nun
[Filme] [Genre] [Filmtitel] Inhalt mit Film, Titelbildern und Infos.
Gruß
Netman
und wo ist jetzt die Frage?
Du hast die Ordnerstruktur schon komplett und die passenden Teile dort einsortiert.
Oder willst du statt:
Filme > [Genre] > FILMDATEI - [Filmtitel] > [Filmtitel].avi ;
Filme > [Genre] > COVER - [Filmtitel] > *.jpg; *.png; usw. ;
Filme > [Genre] > INFO - [Filmtitel] > *.nfo; *.txt; usw.
nun
[Filme] [Genre] [Filmtitel] Inhalt mit Film, Titelbildern und Infos.
Gruß
Netman
Hallo Kingspride,
hab mich mal Drangesetzt.
Ungetestet:
Edit2: So solte es Fungtionieren.
Grüße
Darkprodukt
hab mich mal Drangesetzt.
Ungetestet:
@echo off & setlocal
type >Dateinamen.txt
type >Dateipfade.txt
type >Kopieren.txt
cls
set "Pfad=C:\Test\"
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~nI>>Dateinamen.txt
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~fI>>Dateipfade.txt
for /f "delims=" %%I in ("Dateinamen.txt") do mkdir %Pfad%%%I && timeout /t 1 /NOBREAK>NUL
set "InFile1=Dateipfade.txt"
set "InFile2=Dateinamen.txt"
set "OutFile=Kopieren.txt"
< "%InFile1%" >>"%OutFile%" (
for /f "usebackq delims=" %%a in ("%InFile2%") do (
set /p "Line="
setlocal enabledelayedexpansion
echo\"!Line!" "!Pfad!%%a\"
endlocal
)
)
for /f "delims=" %%I in ("Kopieren.txt") do xcopy %%I /C /Y
pause
if exist Dateinamen.txt del Dateinamen.txt
if exist Dateipfade.txt del Dateipfade.txt
if exist Kopieren.txt del Kopieren.txt
exit 0
Edit2: So solte es Fungtionieren.
Grüße
Darkprodukt
Abend,
ersetze einfach Zeile 08 duch
Du kannst auch einstellen das du nach dem Pfad gefragt wirst in dem du ein /p nach set schreibst also so
Grüße
Darkprodukt
Edit1: Nach dem Starten des Skripts einfach auf die Meldung:
Drücken Sie eine beliebige Taste . . . (oder so ähnlich)
Warten. Fals sich das Fenster schlißt mitte nochmal Melden.
ersetze einfach Zeile 08 duch
set "Pfad=(HIER-DEN-PFAD-EINTRAGEN-VOM-ORDNER-GENERE)"
Du kannst auch einstellen das du nach dem Pfad gefragt wirst in dem du ein /p nach set schreibst also so
set /p "Pfad=Bitte gib den Pfad des Ordners mit den .avi Datein mit einem \ am Ende an: "
Grüße
Darkprodukt
Edit1: Nach dem Starten des Skripts einfach auf die Meldung:
Drücken Sie eine beliebige Taste . . . (oder so ähnlich)
Warten. Fals sich das Fenster schlißt mitte nochmal Melden.
moin kingspride,
auch wenn schon ein Lösungsvorschlag hier steht, wie ist den der Dateiname Formatiert? Bzw. woraus wird die Information des Genre genommen?
Diese aus der Infodatei zu entnehmen wäre ja der einfachste Weg.
Dann kann auch gleich nach den Mustern gesucht werden und entsprechend die Dateien einsortiert werden.
und bitte nimm die:
<code>CodeFormatierung
zur Hilfe.
Sonst könntest Du über die gängig(st)en nfo Files das Genre auslesen.
Gruß Phil
auch wenn schon ein Lösungsvorschlag hier steht, wie ist den der Dateiname Formatiert? Bzw. woraus wird die Information des Genre genommen?
Diese aus der Infodatei zu entnehmen wäre ja der einfachste Weg.
Dann kann auch gleich nach den Mustern gesucht werden und entsprechend die Dateien einsortiert werden.
und bitte nimm die:
<code>CodeFormatierung
zur Hilfe.
D:\Wie sieht denn der Dateiname - [Formatiert] xyz (aus).avi
D:\Filme\[Genre]\FILMDATEI - [Filmtitel]\[Filmtitel].avi
D:\Filme\[Genre]\COVER - [Filmtitel]\*.jpg
D:\Filme\[Genre]\INFO - [Filmtitel]\*.nfo
Sonst könntest Du über die gängig(st)en nfo Files das Genre auslesen.
@echo off
if "%~1" equ "/?" echo Kopiert Avi und zugehörige nfo; txt; jpg; png; bmp &exit /b 0
if not exist "%~1" echo Ordner nicht Gefunden. Ordner auf den Batch ziehen. &exit /b 2
if not exist "%~1\*.avi" echo Keine AVI Gefunden. Ordner mit AVI auf den Batch ziehen. &exit /b 1
setlocal
set "Ziel=D:\Filme\"
set "Pics=jpg,png,bmp"
set "Info=nfo,txt"
for /r "%~1" %%i in (*.avi) do (
for /f "tokens=2*delims=:" %%a in (' findstr /i "\<genre\>" "%%~dpni.nfo" ') do (
for /f %%a in ("%%a") do (
xcopy "%%~i" "%Ziel%%%~a\FILMDATEI - [%%~ni]\[%%~ni]%%~xi"
for %%b in (%pics%) do for %%b in ("%%~dpni.%%b) do xcopy "%%~b" "%Ziel%%%~a\COVER - [%%~ni]\%%~nxb"
for %%b in (%info%) do for %%b in ("%%~dpni.%%b) do xcopy "%%~b" "%Ziel%%%~a\INFO - [%%~ni]\%%~nxb"
) ) )
Gruß Phil
moin kingspride,
wenn die Filmdaten schon in dem jeweiligen Genre Ordner liegen erübrigt sich natürlich das Auslesen des Genre.
Sonst sortiert der Batch auch bei [vorher ASCI-Art ohne Doppelpunkt] richtig.
Dem Xcopy kannst Du zum AnTesten / nur Anzeigen ja noch die Option /L spendieren. Gesteartet in der CMD-Line zeigt Dir der Batch nun nur An was er täte.
Wo genau liegen denn die Filmdaten und die Zugehörigen Extras? Also bevor die Struktur erzeugt wird?
Gruß Phil
wenn die Filmdaten schon in dem jeweiligen Genre Ordner liegen erübrigt sich natürlich das Auslesen des Genre.
Sonst sortiert der Batch auch bei [vorher ASCI-Art ohne Doppelpunkt] richtig.
Dem Xcopy kannst Du zum AnTesten / nur Anzeigen ja noch die Option /L spendieren. Gesteartet in der CMD-Line zeigt Dir der Batch nun nur An was er täte.
Wo genau liegen denn die Filmdaten und die Zugehörigen Extras? Also bevor die Struktur erzeugt wird?
Gruß Phil
Moin kingspride,
Dann lass doch mal Zeile 28 prüfen...
Grüße
Biber
Zitat von @kingspride:
hallo darkprodukt, ich hab nun deine batch datei ausprobieren lassen und es scheint irgendwas fehlerhaft zu sein.
hallo darkprodukt, ich hab nun deine batch datei ausprobieren lassen und es scheint irgendwas fehlerhaft zu sein.
Dann lass doch mal Zeile 28 prüfen...
Grüße
Biber
moin,
was ist denn nun mit dem Genre? Aus dem Dateinamen ist es nicht zu extrahieren.
@Biber Da lässt sich nun endlich die Info entnehmen die ich schon lange wollte. Der Weg ist das Ziel äähm die Quelle ist ... meine ich.
Wenn die Avi im Genre Ordner schon sind dann sortiert der Batch alles in die Passenden Ordner.
Erst mit testdaten testen.
Gruß Phil
was ist denn nun mit dem Genre? Aus dem Dateinamen ist es nicht zu extrahieren.
@Biber Da lässt sich nun endlich die Info entnehmen die ich schon lange wollte. Der Weg ist das Ziel äähm die Quelle ist ... meine ich.
Wenn die Avi im Genre Ordner schon sind dann sortiert der Batch alles in die Passenden Ordner.
Erst mit testdaten testen.
@echo off
setlocal
rem Die Filme und der Rest müssen im Genre Ordner liegen
rem zB. "D:\Filme\Genre\*.AVI" ...
set "Ziel=D:\Filme\"
set "Pics=jpg,png,bmp"
set "Info=nfo,txt"
set "VFilm=FILMDATEI - "
set "VCover=COVER - "
set "VInfo=INFO - "
for /r "%Ziel%" %%i in ( *.avi ) do (
for /f "tokens=3,4delims=\" %%a in ( "%%~i" ) do if %%~xi equ %%~xb (
echo Genre Ordner: %%a
if not exist "%Ziel%%%~a\%VFilm%%%~ni\" md "%Ziel%%%~a\%VFilm%%%~ni\"
move "%%~i" "%Ziel%%%~a\%VFilm%%%~ni\"
for %%b in (%pics%) do for %%b in ( "%%~dpni.%%b?" ) do (
if not exist "%Ziel%%%~a\%VCover%%%~ni\" md "%Ziel%%%~a\%VCover%%%~ni\"
move "%%~b" "%Ziel%%%~a\%VCover%%%~ni\"
)
for %%b in (%info%) do for %%b in ( "%%~dpni.%%b?" ) do (
if not exist "%Ziel%%%~a\%VInfo%%%~ni\" md "%Ziel%%%~a\%VInfo%%%~ni"
move "%%~b" "%Ziel%%%~a\%VInfo%%%~ni\"
)
) else echo "%%i" --^> Schon sortiert? - oder ist im Falschen Verzeichnis.
)
pause
Gruß Phil
Guten Abend kingspride,
hatte leider die Tage keine Zeit im Board vorbei zu schauen.
Hab aber jezt eine getestete Version die, Fungtioniert.
So viel Spaß mit der Batch.
Grüße
Darkprodukt
hatte leider die Tage keine Zeit im Board vorbei zu schauen.
Hab aber jezt eine getestete Version die, Fungtioniert.
@echo off & setlocal
type >Dateinamen.txt
type >Dateipfade.txt
type >Kopieren.txt
cls
set /p "Pfad=Bitte geben sie den Ordner in denen Sich die AVIs befinden mit einem \ am Ende an: "
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~nI>>Dateinamen.txt
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~fI>>Dateipfade.txt
for /f "delims=" %%I in ('type "Dateinamen.txt"') do mkdir "%Pfad%%%I" && timeout /t 1 /NOBREAK>NUL
set "InFile1=Dateipfade.txt"
set "InFile2=Dateinamen.txt"
set "OutFile=Kopieren.txt"
< "%InFile1%" >>"%OutFile%" (
for /f "usebackq delims=" %%a in ("%InFile2%") do (
set /p "Line="
setlocal enabledelayedexpansion
echo\"!Line!" "!Pfad!%%a\"
endlocal
)
)
for /f "delims=" %%I in ('type "Kopieren.txt"') do move /Y %%I
pause
if exist Dateinamen.txt del Dateinamen.txt
if exist Dateipfade.txt del Dateipfade.txt
if exist Kopieren.txt del Kopieren.txt
exit 0
So viel Spaß mit der Batch.
Grüße
Darkprodukt
leider geht das Skript nicht es sclhießt dauernd
ich habe es z.b. geschafft mit einer Batch die mri wer schriebt
aus den Avis einen Ordner mti den selben Namen zu machen
also aus
Avatar, USA 2007, 170 Min. avi
wurde dann ein Ordner
Avatar, USA 2007, 170 Min mit dem Avi drinnen
ok?
gut
mit Total Commander hänge ich das Wort
FILMDATEI an
da habe ich dann FILMDATI - Avatar, USA 2007, 170 Min als Ordner
mit dem Avi drinnen
das ganze gehört jetzt in einen Ordner
der was genauso wie das Avi heißt
also Ordner muß erstellt werden mti dem selben Namen wie Avi und der Filmdatei ordner muß dann gleich rein kopiert werden
es kann doch nicht sein dass das nicht funktioniert, das gibts doch nicht
habe Win 7 und pc
kann da einer helfen bitte?
ich habe 500 avis
und wenn ich gehe auf ordner neu erstellen, avi titel kopiren und den ordner neu erstellen eben und das ganze verschiebe und das 500 x mache sitze ich 3 stunden.
das jedenfalls habe ich versucht
das skript rein kopiert in ein notepad
war gar nicht zu kopieren
mußte die zahlen da ruaslöschen
war irre schwer
http://www.bilder-hochladen.net/files/80ua-q0-e205-jpg.html
wie ihr seht
gar nix wird erstellt
und in dem ordner der dann da ist, und den unnötigen skript dateien die gar nicht hergehören
ist kein ordner Filmdatei drinnen mit dem Avi
verstehst du?
und selbst wenn ich den ordner erstelle mit Filmdatei dann kommt mit dem Batch das raus
http://www.bilder-hochladen.net/files/80ua-q1-b56a-jpg-nb.html
da ist auch nix drinnen
ja absolut nix
ja kann da wer helfen bitte?
ich habe es z.b. geschafft mit einer Batch die mri wer schriebt
aus den Avis einen Ordner mti den selben Namen zu machen
also aus
Avatar, USA 2007, 170 Min. avi
wurde dann ein Ordner
Avatar, USA 2007, 170 Min mit dem Avi drinnen
ok?
gut
mit Total Commander hänge ich das Wort
FILMDATEI an
da habe ich dann FILMDATI - Avatar, USA 2007, 170 Min als Ordner
mit dem Avi drinnen
das ganze gehört jetzt in einen Ordner
der was genauso wie das Avi heißt
also Ordner muß erstellt werden mti dem selben Namen wie Avi und der Filmdatei ordner muß dann gleich rein kopiert werden
es kann doch nicht sein dass das nicht funktioniert, das gibts doch nicht
habe Win 7 und pc
kann da einer helfen bitte?
ich habe 500 avis
und wenn ich gehe auf ordner neu erstellen, avi titel kopiren und den ordner neu erstellen eben und das ganze verschiebe und das 500 x mache sitze ich 3 stunden.
das jedenfalls habe ich versucht
das skript rein kopiert in ein notepad
war gar nicht zu kopieren
mußte die zahlen da ruaslöschen
war irre schwer
http://www.bilder-hochladen.net/files/80ua-q0-e205-jpg.html
wie ihr seht
gar nix wird erstellt
und in dem ordner der dann da ist, und den unnötigen skript dateien die gar nicht hergehören
ist kein ordner Filmdatei drinnen mit dem Avi
verstehst du?
und selbst wenn ich den ordner erstelle mit Filmdatei dann kommt mit dem Batch das raus
http://www.bilder-hochladen.net/files/80ua-q1-b56a-jpg-nb.html
da ist auch nix drinnen
ja absolut nix
ja kann da wer helfen bitte?
tv karte z.b. oder dvd kopieren von orgiinal damit man die dvd weggeben kann aber auf avi konvertieren usw.
wie soll ich das batch bitte kopieren hier wenn bei strg c lauter zahlen dann links stehen? das geht ja gar nich raus kopieren
ah quelltext
nein du hast da was missverstanden
das avi wird in einen ordner verschoben - stimmt
ich möchte aber dass dieser ordner -an dem ich noch das kürzel filmdatei anhängen muß, wieder in einen ordner verschoben wird
siehst du bild 1 - http://www.bilder-hochladen.net/files/80ua-q2-2a9d-jpg.html
da wird so ne komische datei wie kopieren usw. erstellt
wie du siehst, es wird nur die datei mit dem avi erstellt, siehst du?
bei bild 2 hänge ich dann das kürzel - filmdatei an, wie du siehst
dieser ordner gehört in noch einen ordner verschoben der nur dann den filmtitel trägt, verstehst du?
dann ohne das kürzel filmdatei
dann machbe ich den ordner auf udn habe dann den ordner filmdatei drinnen, verstehst du?
hier bild 2
http://www.bilder-hochladen.net/files/80ua-q3-8b50-jpg-nb.html
da ist dann der ordner filmdatei wie du siehst
und dieser gehört in einen ordner mit dem Namen - inki usw.
also einfach nur ein ordner, da drückt man normal auf neuer ordner erstellen, kpiert den Namen raus und schiebt den Rein
verstehst du? das möchte ich automatisch haben
das skript geht super, von avi in order, sowas habe ich eh
ich habe z.b. ein skript das würde ich dir gerne zeigen wo ich gar nix drücken muss, also den Pfad so wie du ds gesagt hast, oder wie das skript zeigt, das ist super, mir geht es nur um den ordner erstellen wo der filmdatei ordner rein kommt
wie soll ich das batch bitte kopieren hier wenn bei strg c lauter zahlen dann links stehen? das geht ja gar nich raus kopieren
ah quelltext
nein du hast da was missverstanden
das avi wird in einen ordner verschoben - stimmt
ich möchte aber dass dieser ordner -an dem ich noch das kürzel filmdatei anhängen muß, wieder in einen ordner verschoben wird
siehst du bild 1 - http://www.bilder-hochladen.net/files/80ua-q2-2a9d-jpg.html
da wird so ne komische datei wie kopieren usw. erstellt
wie du siehst, es wird nur die datei mit dem avi erstellt, siehst du?
bei bild 2 hänge ich dann das kürzel - filmdatei an, wie du siehst
dieser ordner gehört in noch einen ordner verschoben der nur dann den filmtitel trägt, verstehst du?
dann ohne das kürzel filmdatei
dann machbe ich den ordner auf udn habe dann den ordner filmdatei drinnen, verstehst du?
hier bild 2
http://www.bilder-hochladen.net/files/80ua-q3-8b50-jpg-nb.html
da ist dann der ordner filmdatei wie du siehst
und dieser gehört in einen ordner mit dem Namen - inki usw.
also einfach nur ein ordner, da drückt man normal auf neuer ordner erstellen, kpiert den Namen raus und schiebt den Rein
verstehst du? das möchte ich automatisch haben
das skript geht super, von avi in order, sowas habe ich eh
ich habe z.b. ein skript das würde ich dir gerne zeigen wo ich gar nix drücken muss, also den Pfad so wie du ds gesagt hast, oder wie das skript zeigt, das ist super, mir geht es nur um den ordner erstellen wo der filmdatei ordner rein kommt
moin Compi,
ich meine ja auch das Script hier: Filmesammlung benennen via batch datei.
Dein Verzeichnis Ziel ist dann K:\Filme in Zeile 07. anzupassen.
Der Ordner Kinder entspäche dann dem Genre.
Gruß Phil
ich meine ja auch das Script hier: Filmesammlung benennen via batch datei.
Dein Verzeichnis Ziel ist dann K:\Filme in Zeile 07. anzupassen.
Der Ordner Kinder entspäche dann dem Genre.
Gruß Phil
also
K:\FILME\Krieg ist der ordner
http://www.bilder-hochladen.net/files/80ua-q6-23ce-jpg.html
siehst du das skript? stimmts?
so 20minuten später
ja heureka es geht das skript ja super danke
jetzt gehts ja weiter
wie geht dass, dass dann dieser filmdatei ordner in den überordner kommt? also das gleiche noch mal
wo dann der ordner mit dem filmtitel erstellt wird und ohne dem zusatz filmtitel - verstehst du?
dass also der Filmtitel ordner in den ordner reinrutscht was dann den filmnamen trägt
also ich öffne den ordner mit dem jewiligen filmtitel und habe den filmtitel ordner mit dem avi drinnen
verstehst?
K:\FILME\Krieg ist der ordner
http://www.bilder-hochladen.net/files/80ua-q6-23ce-jpg.html
siehst du das skript? stimmts?
so 20minuten später
ja heureka es geht das skript ja super danke
jetzt gehts ja weiter
wie geht dass, dass dann dieser filmdatei ordner in den überordner kommt? also das gleiche noch mal
wo dann der ordner mit dem filmtitel erstellt wird und ohne dem zusatz filmtitel - verstehst du?
dass also der Filmtitel ordner in den ordner reinrutscht was dann den filmnamen trägt
also ich öffne den ordner mit dem jewiligen filmtitel und habe den filmtitel ordner mit dem avi drinnen
verstehst?