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

Filmesammlung benennen via batch datei

Frage Entwicklung Batch & Shell

Mitglied: kingspride

kingspride (Level 1) - Jetzt verbinden

16.08.2012 um 09:23 Uhr, 4162 Aufrufe, 19 Kommentare

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,

Mit freundlichen Grüßen kingspride
Mitglied: MrNetman
16.08.2012 um 09:54 Uhr
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
Bitte warten ..
Mitglied: kingspride
16.08.2012 um 10:09 Uhr
hallo, danke schon mal für die antwort.

nein, ich habe diese ordner struktur eben noch nicht / bzw. erst teilweise angelegt, da das manuell doch sehr aufwendig und mühsehlig ist. der zustand momentan ist so, dass die *.avis im genre ordner rumfliegen und ich diese gerne für die erstellung der ordnerstruktur nutzen will. die entsprechenden dateien wegsortieren kann ich dann auch selber machen, bloss eben eine solche ordnerstruktur anzulegen für mehr als 50 filme ist schon sehr zeitaufwendig, vor allem wenn für [Filmtitel] zb. "Die Entführer lassen grüßen, Frankreich 1972, 116 Min" eingetragen ist.
Bitte warten ..
Mitglied: Darkprodukt
18.08.2012, aktualisiert 19.08.2012
Hallo Kingspride,

hab mich mal Drangesetzt.

Ungetestet:
01.
@echo off & setlocal 
02.
 
03.
type >Dateinamen.txt 
04.
type >Dateipfade.txt 
05.
type >Kopieren.txt 
06.
cls 
07.
 
08.
set "Pfad=C:\Test\" 
09.
 
10.
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~nI>>Dateinamen.txt 
11.
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~fI>>Dateipfade.txt 
12.
 
13.
for /f "delims=" %%I in ("Dateinamen.txt") do mkdir %Pfad%%%I && timeout /t 1 /NOBREAK>NUL 
14.
 
15.
set "InFile1=Dateipfade.txt" 
16.
set "InFile2=Dateinamen.txt"  
17.
set "OutFile=Kopieren.txt" 
18.
 
19.
< "%InFile1%" >>"%OutFile%"	( 
20.
				 for /f "usebackq delims=" %%a in ("%InFile2%") do ( 
21.
										    set /p "Line="  
22.
										    setlocal enabledelayedexpansion  
23.
										    echo\"!Line!" "!Pfad!%%a\"  
24.
										    endlocal  
25.
26.
27.
 
28.
for /f "delims=" %%I in ("Kopieren.txt") do xcopy %%I /C /Y 
29.
 
30.
pause 
31.
if exist Dateinamen.txt del Dateinamen.txt 
32.
if exist Dateipfade.txt del Dateipfade.txt 
33.
if exist Kopieren.txt del Kopieren.txt 
34.
exit 0
Edit2: So solte es Fungtionieren.

Grüße
Darkprodukt
Bitte warten ..
Mitglied: kingspride
18.08.2012 um 17:32 Uhr
hey, danke dass du mir ein script geschrieben hast. werde es auch demnächst dann ausprobieren, aber vorher muss ich noch fragen, was ich anpassen muss, wegen pfaden und dateinamen. oder werde ich gefragt?

danke schon mal.
Bitte warten ..
Mitglied: Darkprodukt
19.08.2012, aktualisiert um 02:24 Uhr
Abend,

ersetze einfach Zeile 08 duch
01.
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
01.
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.
Bitte warten ..
Mitglied: kingspride
19.08.2012 um 19:14 Uhr
okay, danke schön. werde ich mal ausprobieren!
Bitte warten ..
Mitglied: pieh-ejdsch
19.08.2012, aktualisiert um 22:58 Uhr
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</code>
zur Hilfe.
01.
D:\Wie sieht denn der Dateiname - [Formatiert] xyz (aus).avi 
02.
 
03.
D:\Filme\[Genre]\FILMDATEI - [Filmtitel]\[Filmtitel].avi 
04.
D:\Filme\[Genre]\COVER - [Filmtitel]\*.jpg 
05.
D:\Filme\[Genre]\INFO - [Filmtitel]\*.nfo

Sonst könntest Du über die gängig(st)en nfo Files das Genre auslesen.
01.
@echo off 
02.
if "%~1" equ "/?" echo Kopiert Avi und zugehörige nfo; txt; jpg; png; bmp &exit /b 0 
03.
if not exist "%~1" echo Ordner nicht Gefunden. Ordner auf den Batch ziehen. &exit /b 2 
04.
if not exist "%~1\*.avi" echo Keine AVI Gefunden. Ordner mit AVI auf den Batch ziehen. &exit /b 1 
05.
setlocal 
06.
set "Ziel=D:\Filme\" 
07.
set "Pics=jpg,png,bmp" 
08.
set "Info=nfo,txt" 
09.
 
10.
for /r "%~1" %%i in (*.avi) do ( 
11.
  for /f "tokens=2*delims=:" %%a in (' findstr /i "\<genre\>" "%%~dpni.nfo" ') do ( 
12.
    for /f %%a in ("%%a") do ( 
13.
      xcopy "%%~i" "%Ziel%%%~a\FILMDATEI - [%%~ni]\[%%~ni]%%~xi" 
14.
      for %%b in (%pics%) do for %%b in ("%%~dpni.%%b) do xcopy "%%~b" "%Ziel%%%~a\COVER - [%%~ni]\%%~nxb" 
15.
      for %%b in (%info%) do for %%b in ("%%~dpni.%%b) do xcopy "%%~b" "%Ziel%%%~a\INFO - [%%~ni]\%%~nxb" 
16.
) ) )
Gruß Phil
Bitte warten ..
Mitglied: kingspride
20.08.2012, aktualisiert um 10:14 Uhr
aus den nfos auszulesen halte ich für nicht so sinnvoll, da dort öfter mal ascii art drin sind und es so sicherlich zu fehlern kommt. ansonsten sind die avi dateien folgendermaßen benannt:

01.
D:\Filme\Komödie\FILMDATEI - Die Entführer lassen grüßen, Frankreich 1972, 116 Min\Die Entführer lassen grüßen, Frankreich 1972, 116 Min.avi 
02.
 
03.
Allgemein: 
04.
 
05.
D:\Filme\[Genre]\FILMDATEI - [Titel], [Ort/Jahr], [Dauer]\[Titel], [Ort/Jahr], [Dauer].avi
besser so?
Bitte warten ..
Mitglied: pieh-ejdsch
20.08.2012 um 16:50 Uhr
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
Bitte warten ..
Mitglied: kingspride
21.08.2012 um 21:43 Uhr
hallo darkprodukt, ich hab nun deine batch datei ausprobieren lassen und es scheint irgendwas fehlerhaft zu sein.

es kommt folgender text beim ausführen: (nach eingabe des pfads zum genre ordner)

01.
C:Kopieren.txt 
02.
Datei kann nicht auf sich selbst kopiert werden 
03.
0 Datei(en) kopiert 
04.
Drücken Sie eine beliebige Taste...
Bitte warten ..
Mitglied: Biber
21.08.2012 um 21:59 Uhr
Moin kingspride,

Zitat von kingspride:
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
Bitte warten ..
Mitglied: pieh-ejdsch
21.08.2012, aktualisiert 24.08.2012
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.
01.
@echo off 
02.
setlocal 
03.
 
04.
 rem Die Filme und der Rest müssen im Genre Ordner liegen 
05.
 rem zB. "D:\Filme\Genre\*.AVI" ... 
06.
 
07.
set "Ziel=D:\Filme\" 
08.
set "Pics=jpg,png,bmp" 
09.
set "Info=nfo,txt" 
10.
set "VFilm=FILMDATEI - " 
11.
set "VCover=COVER - " 
12.
set "VInfo=INFO - " 
13.
 
14.
 
15.
for /r "%Ziel%" %%i in ( *.avi ) do ( 
16.
  for /f "tokens=3,4delims=\" %%a in ( "%%~i" ) do if %%~xi equ %%~xb ( 
17.
    echo Genre Ordner: %%a 
18.
    if not exist "%Ziel%%%~a\%VFilm%%%~ni\" md "%Ziel%%%~a\%VFilm%%%~ni\" 
19.
    move "%%~i" "%Ziel%%%~a\%VFilm%%%~ni\" 
20.
    for %%b in (%pics%) do for %%b in ( "%%~dpni.%%b?" ) do ( 
21.
      if not exist "%Ziel%%%~a\%VCover%%%~ni\" md "%Ziel%%%~a\%VCover%%%~ni\" 
22.
      move "%%~b" "%Ziel%%%~a\%VCover%%%~ni\" 
23.
24.
    for %%b in (%info%) do for %%b in ( "%%~dpni.%%b?" ) do ( 
25.
      if not exist "%Ziel%%%~a\%VInfo%%%~ni\" md "%Ziel%%%~a\%VInfo%%%~ni" 
26.
      move "%%~b" "%Ziel%%%~a\%VInfo%%%~ni\" 
27.
28.
  ) else echo "%%i" --^> Schon sortiert? - oder ist im Falschen Verzeichnis. 
29.
30.
pause
Gruß Phil
Bitte warten ..
Mitglied: kingspride
21.08.2012 um 22:41 Uhr
auch nochmal danke dafür. mal sehen ob dein script geht.

zu den pfaden: hatte ich ja eigentlich schon geschrieben, dass die avis in den genre ordnern sind. aber eben unsortiert.
Bitte warten ..
Mitglied: Darkprodukt
23.08.2012, aktualisiert um 00:27 Uhr
Guten Abend kingspride,

hatte leider die Tage keine Zeit im Board vorbei zu schauen.
Hab aber jezt eine getestete Version die, Fungtioniert.

01.
@echo off & setlocal 
02.
 
03.
type >Dateinamen.txt 
04.
type >Dateipfade.txt 
05.
type >Kopieren.txt 
06.
cls 
07.
 
08.
set /p "Pfad=Bitte geben sie den Ordner in denen Sich die AVIs befinden mit einem \ am Ende an: " 
09.
 
10.
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~nI>>Dateinamen.txt 
11.
for /f "delims=" %%I in ('dir /a-s-h-d /b /s "%Pfad%*avi"') do echo %%~fI>>Dateipfade.txt 
12.
 
13.
for /f "delims=" %%I in ('type "Dateinamen.txt"') do mkdir "%Pfad%%%I" && timeout /t 1 /NOBREAK>NUL 
14.
 
15.
set "InFile1=Dateipfade.txt" 
16.
set "InFile2=Dateinamen.txt"  
17.
set "OutFile=Kopieren.txt" 
18.
 
19.
< "%InFile1%" >>"%OutFile%"	( 
20.
				 for /f "usebackq delims=" %%a in ("%InFile2%") do ( 
21.
										    set /p "Line="  
22.
										    setlocal enabledelayedexpansion  
23.
										    echo\"!Line!" "!Pfad!%%a\"  
24.
										    endlocal  
25.
26.
27.
 
28.
for /f "delims=" %%I in ('type "Kopieren.txt"') do move /Y %%I 
29.
 
30.
pause 
31.
if exist Dateinamen.txt del Dateinamen.txt 
32.
if exist Dateipfade.txt del Dateipfade.txt 
33.
if exist Kopieren.txt del Kopieren.txt 
34.
exit 0
So viel Spaß mit der Batch.

Grüße
Darkprodukt
Bitte warten ..
Mitglied: Compi1
24.08.2012, aktualisiert um 07:47 Uhr
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?
Bitte warten ..
Mitglied: pieh-ejdsch
24.08.2012 um 14:59 Uhr
moin,

Ich hoffe ja diese Blockbuster sind alles "nur" Sicherheitskopien oder "DigitalCopy".

Skript ist jetzt lauffähig.

Gruß Phil
Bitte warten ..
Mitglied: Compi1
25.08.2012, aktualisiert um 08:53 Uhr
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
Bitte warten ..
Mitglied: pieh-ejdsch
25.08.2012 um 15:08 Uhr
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
Bitte warten ..
Mitglied: Compi1
25.08.2012, aktualisiert um 19:26 Uhr
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?
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (22)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...