Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst Batchdatei - Tabellen erstellen aus beliebig vielen Textdateien

Mitglied: weiti89

weiti89 (Level 1) - Jetzt verbinden

11.02.2009, aktualisiert 21:21 Uhr, 7821 Aufrufe, 7 Kommentare

Hallo, ich habe eine große Filmsammlung (aktuell 255, es werden ständig mehr). Um den Überblick zu behalten würde ich gerne eine Tabelle (zB Excel) erstellen in der die Filmtitel und das Genre enthalten sind, als spalten der Tabelle. Da es immer mehr werden, möchte ich die Tabelle jederzeit mit allen Filmen neu erstellen.
Die Filme liegen folgendermaßen vor: Ordner "Filme" darin sind Unterordner, jeweils ein Unterordner pro Film. Der Unterordner heißt wie der Film. Im Unterordner liegt jeweils eine Datei Filmname.divx sowie eine EPG.txt. Die EPG.txt enthält in der ersten Zeile den Filmnamen, in der zweiten das Genre, in den anderen Zeilen eine Beschreibung. Die erste und zweite Zeile sollen ausgelesen und als exel gespeichert werden.

Bisher bin ich soweit, das ich alle Filmtitel speichere mit:

Dir /A /B /N /W /TC > ~DateiListe.xls

im Verzeichnis \Filme in der Window- Shell
Allerdings greife ich nur auf die Ordnernamen zu, nicht auf die txt Dateien darin

Folgende Probleme hab ich:
- ich muss in alle Unterordner
- Ich muss auf Zeileninhalte der txt zugreifen
- ich muss beim speichern als Tabelle angeben was in welche Zeile/Spalte kommt
Mitglied: 60730
11.02.2009 um 21:40 Uhr
Servus,

schau dir mal was fix und fertiges an, wie z.B die Variante.

Macht deutlich mehr Spass einen Barcodeleser an die Hülle dran zu halten und das war dann schon fast alles, was man[n] machen muß

Gruß
Bitte warten ..
Mitglied: weiti89
11.02.2009 um 22:09 Uhr
mhm, ne. Meine Filme sind Videoaufnahmen aus dem Fernsehen. Da gibt es keine Barcodes. und manuell alle Filme per Hand eintragen will ich ja vermeiden.
Bitte warten ..
Mitglied: bastla
11.02.2009 um 22:10 Uhr
Hallo weiti89 und willkommen im Forum!

Du könntest es mit folgendem Batch versuchen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Filme" 
03.
set "Liste=%Basis%\Liste.csv" 
04.
 
05.
>"%Liste%" echo "Filmname";"Genre" 
06.
for /d %%i in ("%Basis%\*.*") do call :ProcessDir "%%i" 
07.
"%Liste%" 
08.
goto :eof 
09.
 
10.
:ProcessDir 
11.
set "EPG=%~1\EPG.txt" 
12.
set /p Filmname=<"%EPG%" 
13.
set Genre= 
14.
for /f "usebackq skip=1 delims=" %%a in ("%EPG%") do if not defined Genre set "Genre=%%a" 
15.
>>"%Liste%" echo "%Filmname%";"%Genre%" 
16.
goto :eof
Erstellt wird keine "echte" Excel-Datei, sondern eine CSV, welche aber direkt mit Excel geöffnet werden kann (und durch Zeile 7 des Batches auch wird). Durch ein einfaches "Speichern unter..." mit Auswahl des gewünschten Typs ".xls" erhältst Du dann auch das gewünschte Excel-File.

Grüße
bastla

P.S.: Ein "DIR /A /B", oder besser "DIR /AD /B", sollte auch genügen; "/N" "/W" und "/TC" ändern hier nichts am Ergebnis ...
Bitte warten ..
Mitglied: weiti89
11.02.2009 um 22:30 Uhr
Danke erstmal!
ich habe "Basis=E:\Externe\Filme" in Zeile 2 angepasst. Es klappt ganz gut, nur stehen bei vielen (schätze 25%) Zwei Einträge, einmal mit Genre und einmal ist die Genre-Zeile leer.
Bsp.:

EPG.txt:

BORAT (BORAT: CULTURAL LEARNINGS OF AMERICA FOR MAKE BENEFIT GLORIOUS NATION OF KAZAKHSTAN) >>U
Komödie>>/U
Seine Schwester ist die[...]
USA 2006. 81 Min. Von Larry Charles, mit Sacha Baron Cohen, Kevin Davitian, Daniel Castro.

Die Zeilenumbrüche habe ich extra markiert mit >>U

Das meißte kann ich nachvollziehen, aber was macht set "Genre=%%a" ?

ps: spaßige fehler wenn die EPG.txt falsch formatiert ist
JOHNNY ENGLISH hat als Genre "Armes Großbritannien!"
Bitte warten ..
Mitglied: bastla
11.02.2009 um 22:41 Uhr
Hallo weiti89!

Wenn ich Dein "Borat"-Beispiel in eine "EPG.txt" schreibe, wird bei mir nur eine Zeile daraus ...

Könnte es sein, dass es im Original keine Windows-Zeilenumbrüche (CR/LF) sind?

Vielleicht ließe sich der zweite Eintrag (wenn Genre leer bleibt) so vermeiden: Ersetze Zeile 15 durch:
if  defined Genre >>"%Liste%" echo "%Filmname%";"%Genre%"
was macht set "Genre=%%a" ?
Mit "Genre=%%a" wird die ausgelesene zweite Zeile der EPG.txt der Variablen %Genre% zugewiesen.
Probleme könnte es übrigens auch geben, wenn ein Filmtitel (im Genre wird's wohl eher nicht der Fall sein) ein "&" (oder "<", ">" bzw "|") enthält. Um dem vorzubeugen, solltest Du noch vor Zeile 15 einfügen:
set "Filmname=%Filmname:&=^&"
- analog auch für die anderen genannten Sonderzeichen ...

Grüße
bastla
Bitte warten ..
Mitglied: weiti89
11.02.2009 um 22:58 Uhr
Die If abfrage klappt wunderbar. Danke!
Die Zeilenumbrüche werden von einem Aufnahme-Programm so erstellt, daher weiß ich nicht genau was für welche es sind. der Editor zeigt sie mir aber auch immer als Umbrüche an.

Was steht in %%a? was heißt delim?

Eigentliches Problem ist soweit geklärt. Vielen Dank.
Bitte warten ..
Mitglied: bastla
11.02.2009 um 23:11 Uhr
Hallo weiti89!

Vorweg ein Hinweis grundsätzlicher Art: Mit "for /?" (und analog für andere CMD-Befehle) kannst Du die Online-Hilfe aufrufen (speziell zu "for" ist diese ziemlich umfangreich) ...
Die ganze Zeile
for /f "usebackq skip=1 delims=" %%a in ("%EPG%") do if not defined Genre set "Genre=%%a"
hat folgende Aufgabe:
"Lese die in der Variablen "%EPG%" (damit diese, für den Fall dass der Ordnername Leerzeichen enthalten sollte, unter Anführungszeichen gesetzt werden kann, wird "usebackq" benötigt) angegebene Datei zeilenweise aus, ohne die jeweilige Zeile zu zerlegen (es wird festgelegt, dass es kein Trennzeichen = "delimiter" geben soll), überspringe die Zeile 1 und schreibe das Ergebnis (jeweils die komplette Zeile) in die Variable %%a bzw in weiterer Folge in %Genre%".

Da bei jedem Durchlauf (also für alle Zeilen ab der zweiten Zeile) auf diese Art und Weise jeweils nicht nur %%a, sondern auch %Genre% einen neuen Wert erhielte, wird zunächst die Variable %Genre% gelöscht und dann sicher gestellt, dass ihr nur ein Wert zugewiesen wird, wenn sie noch keinen hat - was nur auf den ersten Schleifendurchlauf (und daher für Zeile 2) zutrifft.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Datei erstellen nach einem beliebigen Programmpfad

gelöst Frage von Morus2000Batch & Shell7 Kommentare

Hallo zusammen, durch ein java Update funktioniert eine batch Datei nicht mehr zur Zufriedenheit Originalcod: " C: cd\Program Files ...

Batch & Shell

Mit Batchdatei eine .ini erstellen

gelöst Frage von miichiii9Batch & Shell7 Kommentare

Hallo miteinander und guten Morgen Ich möchte eine kleine Abfrage starten via Batch und diese anschliessend in eine ini ...

Windows 7

Beliebigen Button in Windows7 auslesen bzw Verknüpfung erstellen.

Frage von dayz95Windows 71 Kommentar

Hallo, Ich möchte eine Verküpfung zu den "LAN-Einstellungen" bzw "Einstellungen für lokales Netzwerk" erstellen. Die Internetoptionen Datei konnte ich ...

Batch & Shell

Batchdatei zum erstellen und verschieben unterschiedlicher dateien

Frage von paulgunter25Batch & Shell5 Kommentare

Hallo, habe mich gerade hier angemeldet, weil ich viele Ansätze für mein Problem gesehen habe, aber nicht so das ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein interessanter Beitrag dazu: Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10 Anscheinend ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL14 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1011 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)11 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs11 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...