jamesb10
Goto Top

In einer txt Datei verschiedene Zeilen löschen

Mein Script sieht so aus:

@echo off

set katalog="c:\Speicher_1.txt"

tree "d:\recordings" /f /a > %katalog%

Damit erstelle ich mir eine Text-datei über meine aufgenommenen Filme.
Diese Datei ist mein einziger Erfolg den ich bis jetzt verzeichnen konnte.
Das Ergebnis möchte ich weiterbearbeiten, wenn möglich mit einer Erweiterung meines Scripts.

Hier ein Auszug:

D:\RECORDINGS
+---AAA
| +---Alien
| | +---Alien_vs._Predator_(Alien_vs._Predator)
| | | \---2007-01-13.12.18.50.99.rec
| | | 001.vdr*
| | | 002.vdr*
| | | 003.vdr*
| | | index.vdr*
| | | info.vdr*
| | | info.vdr.save*
| | | resume.vdr*
| | | *
| | +---Alien_3
| | | \---2007-01-05.21.43.50.99.rec
| | | 001.vdr*
| | | 002.vdr*
| | | index.vdr*
| | | info.vdr*
| | | info.vdr.save*
| | | resume.vdr*
| | | *
| | \---Alien_-_Die_Wiedergeburt
| | \---2007-01-17.07.13.50.99.rec
| | 001.vdr*
| | 002.vdr*
| | 003.vdr*
| | index.vdr*
| | info.vdr*
| | info.vdr.save*
| | resume.vdr*

Die Liste soll so weiter bearbeitet werden das als Ergebnis es so Aussieht:

D:\RECORDINGS
+---AAA
| +---Alien
| | +---Alien_vs._Predator_(Alien_vs._Predator)
| | | \---2007-01-13.12.18
| | +---Alien_3
| | | \---2007-01-05.21.43
| | \---Alien_-_Die_Wiedergeburt
| | \---2007-01-17.07.13

Ihr seht das einige Zeilen komplett (markiert mit *)gelöscht werden sollen und eine Endung ebenfalls. (.50.99.rec)

Ich hoffe das das umsetzbar ist, denn meine Kenntnisse im Scriptschrieben sind gleich Null.
Das kleine script am Anfang habe ich mir mühsam er googelt.

Mit freundlichen Grüßen Jamesb10
Kommentar vom Moderator Biber am Mar 07, 2010 um 13:14:51 Uhr
Zitat von @Jamesb10:
Das ist wohl beim umbennen passiert:
#rgc:= 657
und seitdem kann ich ihn nicht mehr Öffnen/löschen/Umbennen.
#rgc:= 658

Content-Key: 137545

Url: https://administrator.de/contentid/137545

Printed on: April 16, 2024 at 16:04 o'clock

Member: bastla
bastla Mar 05, 2010 at 19:04:19 (UTC)
Goto Top
Hallo Jamesb10 und willkommen im Forum!

Das Ausfiltern von Zeilen lässt sich mit "findstr /v" erreichen - daher zB als nächste Zeilen:
set "KT=%temp%\kat.txt"  
findstr /v "\.vdr" "%katalog%"|findstr /e /v "| | |">%KT%  
[Edit] Tippfehler bei "KT" korrigiert [/Edit]

Da sich schon hinsichtlich der "|" für Batch etwas mühsam verarbeitbare Sonderzeichen in der Datei befinden, würde ich das Entfernen von ".50.99.rec" mit einem temporären VB-Script realisieren - unter der Voraussetzung, dass der String immer ".50.99.rec" lautet, (ungetestet) als Fortsetzung etwa so:
set "KF=C:\Katalog_fertig.txt"  
set "Entf=".50.99.rec"  
set E=%temp%\Entf.vbs
>%E% echo F=WScript.Arguments(0):T=CreateObject("Scripting.FileSystemObject").OpenTextFile(F).ReadAll:WScript.Echo Replace(T,"%Entf%","")  
cscript //nologo %E% %KT%>"%KF%"  
Das Ergebnis findest Du dann in "C:\Katalog_fertig.txt".

Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 06, 2010 at 07:31:44 (UTC)
Goto Top
Hallo und Danke für die Antwort

Zum ausprobieren habe ich jetzt beide Scripte in mein Script rein kopiert.
War das richtig oder falsch?
Es wurde mir nur meine Textdatei erstellt, unbearbeitet.
Dann habe ich das erste Script nur rein kopiert, genau die selbe Reaktion.
Nachdem ich das erste Script gelöscht habe und das zweite Script rein wurde mir dann auch „Katalog_fertig.txt“ erstellt, aber nur mit Null Kilobyte.
Nebenbei, Schließt sich das Batch-Fenster eigentlich erst wenn der Prozess zu ende ist oder schon nach starten der Befehle?
Member: bastla
bastla Mar 06, 2010 at 08:10:57 (UTC)
Goto Top
Hallo Jamesb10!

Hatte leider noch einen Tippfehler face-sad (ist jetzt auch oben korrigiert) ...

Die (noch leicht angepasste) Komplettfassung sähe dann so aus:
@echo off & setlocal
set "katalog=c:\Speicher_1.txt"  
set "KF=C:\Katalog_fertig.txt"  
set "Entf=.50.99.rec"  

tree "d:\recordings" /f /a >"%katalog%"  
set "KT=%temp%\kat.txt"  
findstr /v "\.vdr" "%katalog%"|findstr /e /v "| | |">%KT%  

set E=%temp%\Entf.vbs
>%E% echo F=WScript.Arguments(0):WScript.Echo Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(F).ReadAll,"%Entf%","")  
cscript //nologo %E% %KT%>"%KF%"  
[Edit] Anführungszeichen in Zeile 2 zurechtgerückt [/Edit]

Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 06, 2010 at 08:50:16 (UTC)
Goto Top
Coooool!!!!

Danke Bastla funktioniert 1A.

Aber wie bei jeder sache es geht doch einfacher denke ich:
Dieser weg ist mir erst beim probieren vom deimen script eingefallen.

Die Datei "info.vdr" enthält in der Zeile mit dem "T" den Titelfilm und in der Zeile mit "S" die Episode

C S19.2E-1-1089-12020
E 260 1192040100 6900 4E 8
T Heroes
S 1.01 Genesis
D Eine totale Sonnenfinsternis verdunkelt kurzzeitig die Erde. Derweil stoesst ein Genetik-Professor aus Indien auf mysterioese Aufzeichnungen seines verstorbenen Vaters: Es scheint Menschen mit uebernatuerlichen Faehigkeiten zu geben - und sie leben unentdeckt unter uns.

Ich denke das es mit findstr einfacher ist eine Filmlist zu erstellen

Wie würde diese Batch aussehen?

mfg Jamesb10
Member: bastla
bastla Mar 06, 2010 at 08:58:22 (UTC)
Goto Top
Hallo Kamesb10!
Wie würde diese Batch aussehen?
Gegenfrage: Wie würde Dein gewünschtes Ergebnis aussehen?

Grüße
bastla
Member: bastla
bastla Mar 06, 2010 at 09:14:21 (UTC)
Goto Top
... da ich momentan nicht mehr Zeit habe, ein schematischer Ansatz:
@echo off & setlocal
set "Basis=D:\RECORDINGS"  
set "KF=D:\Katalog_fertig.txt"  

del "%KF%" 2>nul  
for /f "delims=" %%i in ('dir /s /b "%Basis%\info.vdr"') do call :ProcessFile "%%i"  
goto :eof

:ProcessFile
set "RelPfad=%~dp1%"  
set "RelPfad=%RelPfad:~,-1%"  
call set "RelPfad=%%RelPfad:%Basis%\=%%"  
for /f "tokens=1*" %%a in ('findstr /b /c:"T " %1') do set "Titel=%%b"  
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %1') do set "Episode=%%b"  
echo %RelPfad%
echo %Titel%
echo %Episode%
echo\
goto :eof
Anstelle der "echo"-Zeilen 15 - 18 könntest Du nach dem Testen etwas in der Art verwenden:
>>"%KF%" echo %RelPfad%_%Titel%_%Episode%
Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 06, 2010 at 09:48:49 (UTC)
Goto Top
Hallo Bastla

Die Liste hat zur Zeit nur die Funktion für mich eine Übersicht zu schaffen.

So das ich etwas einfacher einen überblick von den TV-Aufnahmen habe, die auf dem:

Speicher 1 1 TB d:\recordings
Speicher 2 320 GB e:\recordings
Speicher 3 250 GB f:\recordings
Stube VDR-Recorder 1,5 TB \\vdr\hd0\recordings
320 GB \\vdr\hd\recordings
Kind eins VDR-Recorder 400 GB \\vdr1\hd\recordings
Kind zwei VDR-Recorder 320 GB \\vdr2\hd\recordings

zu finden sind.

Wie sie aussehen sollte? Da mach ich mir übers Wochenende mal ein paar gedanken.

PS: das obere Script gibt leider keinen Katalog_fertig.txt aus.

schönes Wochenende noch.

Jamesb10
Member: bastla
bastla Mar 06, 2010 at 14:33:25 (UTC)
Goto Top
Hallo Jamesb10!
das obere Script gibt leider keinen Katalog_fertig.txt aus.
... nachdem Du die Ersetzung der Zeilen 15 - 18 durch die am Ende als Beispiel angeführte Zeile vorgenommen hast?

Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 06, 2010 at 17:28:23 (UTC)
Goto Top
OhOhOhOh!!

Mein Fehler!!

Nachdem ich jetzt die Zeilen ersetzt habe wird die Datei "Katalog_fertig.txt" erstellt, kommt aber nur bis zu einer bestimmten Datei und dann ist schluß.

Alien 3
Alien - Die Wiedergeburt
Alien vs. Predator (Alien vs. Predator)
Auch die Engel essen Bohnen
Auf der Jagd nach dem Juwel vom Nil
Aeon Flux
Aufstand der Helden - The Rising
Asterix erobert Rom
Asterix der Gallier
Asterix - Operation Hinkelstein
Asterix und die Wikinger
Alvin und die Chipmunks - Der Film
Ab durch die Hecke
Auf der Jagd nach dem grünen Diamanten
Bad Boys - Harte Jungs
Batman und Robin
Batman Begins (Batman Begins)
Die Bourne Identität
Beverly Hills Cop II
Beverly Hills Cop III
Beverly Hills Cop
Basic Instinct
Banana Joe
Big Trouble in Little China
Bärenbrüder
Bärenbrüder 2
Chaos
Cars
Das Dschungelbuch
Der Dicke in Mexiko
Der Dicke und das Warzenschwein
Dia_Show_Mallorca
Dragonheart
Doomsday - Tag der Rache
Dinner for One oder Der 90. Geburtstag
Death Race
Daddy ohne Plan (The Game Plan)
Dreckiges Gold
Despereaux - Der kleine Mäuseheld
Der Marshal

Im Batch Fenster wird keine "Fehlermeldung" oder eine andere Reaktion angezeigt.

Aus meiner sicht ist diese Ausgabe viel Übersichtlicher als mein erster Gedankengang.

!!Super Bastla!!

Jamesb10
Member: bastla
bastla Mar 06, 2010 at 17:37:19 (UTC)
Goto Top
Hallo Jamesb10!

Da Batch verschiedene Sonderzeichen (in diesem Fall wird es wohl ein "&" sein) "interpretiert" (und nicht einfach als Text ausgibt), könnte ein einfacher Workaraound darin bestehen, jede Zeile unter Anführungszeichen gesetzt in die Zieldatei zu schreiben - wenn die Anführungszeichen sehr stören, kannst Du diese ja anschließend per Editor oder Word mit "Suchen / Ersetzen" eliminieren.

Die Ausgabezeile würde dann im Batch also etwa so aussehen:
>>"%KF%" echo "%Titel% %Episode%"
Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 07, 2010 at 10:30:48 (UTC)
Goto Top
Hallo

Also:

Der Script bleibt bei einer Datei hängen die er nicht öffnen kann mit folgender Fehlermeldung:

Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenbeträgerbezeichnung ist falsch.

Das ist wohl beim umbennen passiert:
so hieß er mal: #3A_DeD.O.A.ad_or_Alive_(D.O.A.#3A_Dead_or_Alive)
so heißt er jetzt: D.O.A.:_Dead_or_Alive

und seitdem kann ich ihn nicht mehr Öffnen/löschen/Umbennen.
Jegliche versuche:
per kommandozeile, Unlocker, Totalcommander, abgesicherter Modus Fehlschlag.

Ich hatte mich schon so über dein Script gefreut, und dann so was

kann dein script irgendwie diesen "Fehler" umgehen?

mfg Jamesb10
Member: bastla
bastla Mar 07, 2010 at 12:59:38 (UTC)
Goto Top
Hallo Jamesb10!

Du könntest versuchen, den entsprechenden Ordner mit der folgenden modizierten Zeile 6 auszufiltern:
for /f "delims=" %%i in ('dir /s /b "%Basis%\info.vdr"^|findstr /v "D\.O\.A"') do call :ProcessFile "%%i"
Grüße
bastla
Member: Biber
Biber Mar 07, 2010 at 13:08:33 (UTC)
Goto Top
Moin Jamesb10,

es kann an der Fülle deiner Filme liegen - ich weiss jedenfalls nicht, in welchem Film du gerade bist.
Lass uns da mal einen Schnitt machen... face-wink

Was immer auch bastla mal später vorgelesen wird aus dem Buch des Lebens, zwei Dinge sind sicherlich nicht dabei:
a) er wurde nie in flagranti bei der Tätigkeit "Umbennen" ertappt
b) und insbesondere bei der Erstellung einer umformatierten B-Movie-Bestandsliste wäre er nie versehentlich in eine Umbenamserei abgedriftet.

Hast du denn Teile der Skriptschnipsel in andere Skripte eingebaut und if so, wie sehen die denn aus?


Grüße
Biber
Member: bastla
bastla Mar 07, 2010 at 13:13:16 (UTC)
Goto Top
@Biber
Danke für den Versuch der Ehrenrettung face-smile - allerdings wäre ich nicht davon ausgegangen, dass Jamesb10 mir (oder dem von mir verbrochenen Batch) den Umbenamsface-wink-Fehler anlasten wollte ...

Grüße
bastla

P.S.: Es gibt übrigens neben dem "Umbennen" noch mehr gute Gründe, den Ort "Flagranti" zu meiden ... face-wink
Member: Jamesb10
Jamesb10 Mar 07, 2010 at 18:36:52 (UTC)
Goto Top
Hallo zusammen

@bastla und Biber

Das umbennen ist !!mein!! verschulden. Sorry das ich das nicht klar genug Dargestellt habe.
Bin mir auch nicht mehr sicher ob ich das von der XP-Prof (Speicher 1 bis 3 sind in einem PC eingebaut) Oberfläche gemacht habe, oder von der Linux-VDR OSD Oberfläche (die zugriff auf den Speicher hat).
Nja außerdem hat der Speicher 1 1 TB Kapazität Belegt 900 GB.
Den script von bastla setzte ich so ein wie er ihn gepostet hat.

@bastla

Die modifizierte Zeile 6 geht auch nur bis "Der Marshal".

@ Biber

Ganz Oben über meiner Frage steht ein Kommentar von dir Mit:

#rgc:= 657 und #rgc:= 658

Hat das irgendeine Bedeutung für mich?

Kann mich jetzt erst wieder am Freitag den 12.03. melden, Ist halt wieder Wochenbeginn und Arbeiten angesagt.
ps. falls ihr doch irgendwie der Meinung seit der/die "Ordner,Datei" kann gelöscht werden, ruhig posten.

mfg Jamesb10
Member: bastla
bastla Mar 07, 2010 at 19:05:04 (UTC)
Goto Top
Hallo Jamesb10!
Die modifizierte Zeile 6 geht auch nur bis "Der Marshal".
... was mich leider nicht wirklich überrascht ... face-sad

Das Umbenennen des fraglichen Ordners per Linux wäre vermutlich einen Versuch wert (wenn Du ohnehin schon mit einem linux-basierten System Zugriff hast, brauche ich nicht auf "Knoppix" etc zu verweisen).

Wenn auch das Löschen eine Option ist, könntest Du alle anderen Ordner nach zB "D:\BACKUP" verschieben und dann, wenn sich wirklich ganz sicher, doppelt kontrolliert, nur mehr der "kaputte" Ordner in "D:\RECORDINGS" befindet, letzteren mit
rd /s "D:\RECORDINGS"
von der Kommandozeile aus zu löschen versuchen - im Erfolgsfall danach den Ordner "RECORDINGS" neu erstellen und die verschobenen Ordner wieder zurückholen ...

Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 12, 2010 at 08:24:58 (UTC)
Goto Top
Hallo da bin ich wieder

Die Datei „D-O-A.:_Dead_or_Alive“ ist wieder ansprechbar und zwar wie folgt:

Ausbauen – USB-Gehäuse – Linux PC anschließen – als Administrator bearbeiten – Umbenennen – fertig.
Also achtet darauf das !!Niemals!! ein Doppelpunkt in einem Ordnernamen eingegeben wird.
Windows kommt damit nicht zurecht.

Also:

Das zweite Script über die Datei „info.vdr“ klappt jetzt komplett.
Habe dadurch auch festgestellt das Im „Katalog_fertig.txt“ Einträge doppelt oder falsch sind weil:

Die Datei „info.vdr“ fehlt
Die „T“ Zeile fehlt
Die „S“ Zeile fehlt

Dann schreibt das Script einfach das, was es gerade noch im Zwischenspeicher hat.

Schön wäre es wenn dafür z.B. „???“ geschrieben wird, oder Leerzeichen

Kann man den Suchvorgang auch auf mehrere Festplatten setzen?
Hab mal die Speicherorte oben ergänzt.

Ach ja: So wäre für mich die Richtig Ausgabe:

Zähler – Titel – Episode – Speicherort/Datenträgerbezeichnung
z.B. 1 Asterix_der_Gallier – Zeichentrick – Speicher_1

Der Zähler brauch nicht unbedingt, da ich schon probiert habe eine OpenOffice Tabellendokument zu erstellen.Katalog_fertig.ods wird anstandslos geöffnet.Da ich als Trennzeichen zwischen Titel und Episode ein „/“ setze kann ich das sogar auf spalten aufteilen.

Mit freundlichen Grüßen Jamesb10
Member: bastla
bastla Mar 12, 2010 at 20:39:28 (UTC)
Goto Top
Hallo Jamesb10!

Eine adaptierte Version des Batches:
@echo off & setlocal
set "KF=D:\Katalog_fertig.txt"  

set /a Zaehler=1
del "%KF%" 2>nul  
for %%s in (d:\recordings e:\recordings f:\recordings \\vdr\hd0\recordings \\vdr\hd\recordings \\vdr1\hd\recordings \\vdr2\hd\recordings) do (
    for /f "delims=" %%i in ('dir /s /b "%%s\info.vdr"') do call :ProcessFile "%%i" "%%s"  
)
goto :eof

:ProcessFile
set "Speicher=%~2"  
set "RelPfad=%~dp1%"  
set "RelPfad=%RelPfad:~,-1%"  
call set "RelPfad=%%RelPfad:%Speicher%\=%%"  
set "Titel=???"  
for /f "tokens=1*" %%a in ('findstr /b /c:"T " %1') do set "Titel=%%b"  
set "Episode=???"  
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %1') do set "Episode=%%b"  
>>"%KF%" echo %Zaehler%-%Titel%-%Episode%-%Speicher%(-%RelPfad%)  
set /a Zaehler+=1
goto :eof
Falls Du die Pfadangabe im jeweiligen Speicher (%RelPfad%) nicht benötigst, können die Zeilen 13 bis 15 (und natürlich der entsprechende Teil des "echo" in Zeile 20) entfallen ...

Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 14, 2010 at 07:56:54 (UTC)
Goto Top
Hallo bastla

!!!!Das Script ist jetzt perfekt!!!

Hier mal ein kleiner Auszug.

222 / xXx - Triple X / ??? / d:\recordings / (XXX\xXx_-_Triple_X\2008-12-05.20.09.50.99.rec)
223 / X-Men / Fantasy-Action / d:\recordings / (XXX\X-Men\X-Men_1\2007-02-12.00.18.50.99.rec)
326 / Das A-Team / ??? / \\Stube\hd0\recordings / (Das_A-Team\2009-11-21.17.58.50.99.rec)
327 / ??? / Actionthriller / \\Stube\hd0\recordings / (Das_Bourne_Ultimatum\2008-05-12.09.15.50.99.rec)


Der Zähler ist richtig
Der Titel ist richtig
Die Episode ist richtig
Der Speicherort ist zwar richtig, aber nicht wie ich es mir vorgestellt habe.
Der komplette Pfad ist zum Bearbeiten auch Super, werde ich aber zum Schluss weglassen

Als Speicherort hatte ich mir es eigentlich so vorgestellt:

222 / xXx - Triple X / ??? / Speicher_1/ (XXX\xXx_-_Triple_X\2008-12-05.20.09.50.99.rec)
223 / X-Men / Fantasy-Action / Speicher_1 / (XXX\X-Men\X-Men_1\2007-02-12.00.18.50.99.rec)
326 / Das A-Team / ??? / Stube-HD0 / (Das_A-Team\2009-11-21.17.58.50.99.rec)
327 / ??? / Actionthriller / Stube-HD0 / (Das_Bourne_Ultimatum\2008-05-12.09.15.50.99.rec)


Das halt für z.B. „d:\recordings“ ----Speicher 1 geschrieben wird.
Das werde ich aber im Nachhinein machen in dem OpenOffice Tabellendokument, mit suchen und ersetzen.

Vielen ,Vielen Dank für deine Unterstützung.

ps: Jetzt hab ich aber ein Arsch voll Arbeit an der Backe, denn die Liste hat einen Umfang von ca.700 Einträgen.

MitFreundlichem Gruß

Jamesb10
Member: bastla
bastla Mar 14, 2010 at 09:48:58 (UTC)
Goto Top
Hallo Jamesb10!

Die Benennung des Speichers nach Deinem Wunsch sollte sich auch noch machen lassen - (ungetestet) etwa so:
@echo off & setlocal
set "KF=D:\Katalog_fertig.txt"  

set /a Zaehler=1
del "%KF%" 2>nul  
for %%a in ("d:\recordings@Speicher 1" "e:\recordings@Speicher 2" "f:\recordings@Speicher 3" "\\vdr\hd0\recordings@Stube VDR-Recorder" "\\vdr\hd\recordings@320 GB" "\\vdr1\hd\recordings@Kind eins VDR-Recorder" "\\vdr2\hd\recordings@Kind zwei VDR-Recorder") do (  
    for /f "tokens=1-2 delims=@" %%r in (%%a) do (  
        for /f "delims=" %%i in ('dir /s /b "%%r\info.vdr" 2^>nul') do call :ProcessFile "%%i" "%%r" "%%s"  
    )
)
goto :eof

:ProcessFile
set "SpeicherPfad=%~2"  
set "Speicher=%~3"  
set "RelPfad=%~dp1%"  
set "RelPfad=%RelPfad:~,-1%"  
call set "RelPfad=%%RelPfad:%SpeicherPfad%\=%%"  
set "Titel=???"  
for /f "tokens=1*" %%a in ('findstr /b /c:"T " %1') do set "Titel=%%b"  
set "Episode=???"  
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %1') do set "Episode=%%b"  
>>"%KF%" echo %Zaehler%-%Titel%-%Episode%-%Speicher%(-%RelPfad%)  
set /a Zaehler+=1
goto :eof
Noch viel Spaß bei der "Arbeit" ... face-smile

Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 14, 2010 at 10:54:06 (UTC)
Goto Top
Hallo bastla

*‹(•¿•)›.•´¯`•. KLASSE.•´¯`•.SUPER.•´¯`•.DANKE sagt.•´¯`•.‹(•¿•)›*Jamesb10
Member: Biber
Biber Mar 14, 2010 at 12:51:09 (UTC)
Goto Top
[OT]
Moin jamesb10,
Zitat von @Jamesb10:
ps: Jetzt hab ich aber ein Arsch voll Arbeit an der Backe, denn ...
Bitte in diesem Zweigarm des Forums die obermaximalige Anzahl von blumigen Bildern pro Halbsatz auf 1 beschränken.
Mehr verwende ich auch nicht.
Außerdem solltest du nicht sprachliche oder anatomische Unglaublichkeiten heraufbeschwören, die unvorbereitete MitleserInnen am frühen Wochenend-Mittag an die Frau des Cheffes erinnern könnten.

P.S. Wegen des running gag counters "rgc", mit dem hier die Standard-Variationen des Wortes "Umbenennen" gezählt werden...
->kein Handlungsbedarf für dich.

Grüße
Biber
[/OT]
Member: Jamesb10
Jamesb10 Mar 25, 2014 at 06:52:45 (UTC)
Goto Top
Hallo zusammen

Ist schon ne Zeit her das ich hier im Forum war.
Ihr habt mir "damals" sehr geholfen
und für mich diese Windows-Batchdatei erstellt.

[code]
@echo off & setlocal
set "KF=D:\Katalog_fertig.txt"

set /a Zaehler=1
del "%KF%" 2>nul
for %%a in ("d:\recordings@Speicher 1" "e:\recordings@Speicher 2" "f:\recordings@Speicher 3" "\\vdr\hd0\recordings@Stube VDR-Recorder" "\\vdr\hd\recordings@320 GB" "\\vdr1\hd\recordings@Kind eins VDR-Recorder" "\\vdr2\hd\recordings@Kind zwei VDR-Recorder") do (
for /f "tokens=1-2 delims=@" %%r in (%%a) do (
for /f "delims=" %%i in ('dir /s /b "%%r\info.vdr" 2^>nul') do call :ProcessFile "%%i" "%%r" "%%s"
)
)
goto :eof

:ProcessFile
set "SpeicherPfad=%~2"
set "Speicher=%~3"
set "RelPfad=%~dp1%"
set "RelPfad=%RelPfad:~,-1%"
call set "RelPfad=%%RelPfad:%SpeicherPfad%\=%%"
set "Titel=???"
for /f "tokens=1*" %%a in ('findstr /b /c:"T " %1') do set "Titel=%%b"
set "Episode=???"
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %1') do set "Episode=%%b"
"%KF%" echo %Zaehler%-%Titel%-%Episode%-%Speicher%(-%RelPfad%)
set /a Zaehler+=1
goto :eof
[/code]

Hab sie auch bis vor 2,5 Jahren immer regelmäßig eingesetzt.
Mittlerweile hat sich aber etwas geändert:
Die Datei die "durchsucht" wird jetzt heißt anders, nähmlich "info.txt".
Da ich aber halt noch viele Aufnahmen habe die die Datei "info.vdr" haben wäre es schön wenn nach beiden Dateien gesucht wird.
Die struktur der Datei hat sich nicht geändert:

C C-61441-10012-50017 glitz* HD
E 26171 1376214900 2700 4E 8
T Body of Proof
S 1.01 Die Rechtsmedizinerin
D USA 2011 * Mit Dana Delany, Jeri Ryan, John Carroll Lynch, u.a. * Aufgrund einer

Außerdem schneide ich mittlerweile die Aufnahmen, vorne und hinten die Werbung weg.
Somit bekommt der Ordner einen neuen Namen:

alt: 1.01_Die_Rechtsmedizinerin
neu: %1.01_Die_Rechtsmedizinerin

Das Prozentzeichen ist für den Linux-vdr, damit erkennt er das diese aufnahme geschnitten wurde.

Aber die Batch kommt damit leider nicht zurecht. Kommt halt die Fehlermeldung:
Ordner kann nicht geöffnet werden.

Da ich die Batch-Datei gerne weiter benutzen möchte könntet ihr mir die Bitte ergänzen?

mit freundlichem Gruß

Jamesb-10
Member: bastla
bastla Mar 25, 2014 at 22:45:18 (UTC)
Goto Top
Hallo Jamesb-10!

Zum Thema "info.txt" und "info.vdr" sollte es genügen, die Zeile
for /f "delims=" %%i in ('dir /s /b "%%r\info.txt" /s /b "%%r\info.vdr"2^>nul') do call :ProcessFile "%%i" "%%r" "%%s"
zu verwenden (soferne nicht beide Dateien im gleichen Ordner vorkommen).

Das Prozentzeichen am Beginn der Ordnernamen ist für Batch leider suboptimal - ließe sich das nicht durch zB "#" ersetzen?

Grüße
bastla

P.S.: Für die "Code"-Formatierung bitte "[" und "]" durch "<" und ">" ersetzen ...
Member: Jamesb10
Jamesb10 Mar 26, 2014 at 08:33:33 (UTC)
Goto Top
Hallo bastla

freut mich von dir zu hören!!

Zitat von @bastla:

Hallo Jamesb-10!

Zum Thema "info.txt" und "info.vdr" sollte es genügen, die Zeile
for /f "delims=" %%i in ('dir /s /b "%%r\info.txt" /s /b
> "%%r\info.vdr"2^>nul') do call :ProcessFile "%%i" "%%r" "%%s"
> 
zu verwenden (soferne nicht beide Dateien im gleichen Ordner vorkommen).

Danke, die Dateien kommen nicht in einem Ordner vor!

Zitat von @bastla:
P.S.: Für die "Code"-Formatierung bitte "[" und "]" durch "<" und ">"
ersetzen ...

hab mich schon gewundert warum das script nicht in der gewohnten form angezeigt wird.
Hatte aber auch keine zeit es rauszufinden warum.

Zitat von @bastla:
Das Prozentzeichen am Beginn der Ordnernamen ist für Batch leider suboptimal - ließe sich das nicht durch zB
"#" ersetzen?

100 Prozentig weiß ich das nicht, ich vermute aber leider Nein.
Der Linux-vdr ist eine Reelbox Avantgarde von Reel Multimedia


falls der link nicht erlaubt ist Bitte löschen!!

Somit hab ich das gefühl, es ist das aus für mein Script ??

mit freundlichem gruß

Jamesb10
Member: bastla
bastla Mar 26, 2014 at 16:12:11 (UTC)
Goto Top
Hallo Jamesb10!
Somit hab ich das gefühl, es ist das aus für mein Script ??
Bevor das Gewehr im Getreide landet, solltest Du vielleicht noch folgende Version testen (hab ich nämlich nicht gemacht face-wink):
@echo off & setlocal
set "KF=D:\Katalog_fertig.txt"  

set /a Zaehler=1
del "%KF%" 2>nul  
for %%a in ("d:\recordings@Speicher 1" "e:\recordings@Speicher 2" "f:\recordings@Speicher 3" "\\vdr\hd0\recordings@Stube VDR-Recorder" "\\vdr\hd\recordings@320 GB" "\\vdr1\hd\recordings@Kind eins VDR-Recorder" "\\vdr2\hd\recordings@Kind zwei VDR-Recorder") do (  
    for /f "tokens=1-2 delims=@" %%r in (%%a) do (  
        for /f "delims=" %%i in ('dir /s /b "%%r\info.txt" /s /b "%%r\info.vdr"2^>nul') do set "RelPfad=%%~dpi" & set "Datei=%%i" & call :ProcessFile "%%r" "%%s"  
    )
)
goto :eof

:ProcessFile
set "SpeicherPfad=%~1"  
set "Speicher=%~2"  
set "RelPfad=%RelPfad:~,-1%"  
call set "RelPfad=%%RelPfad:%SpeicherPfad%\=%%"  
set "Titel=???"  
for /f "tokens=1*" %%a in ('findstr /b /c:"T " "%Datei%"') do set "Titel=%%b"  
set "Episode=???"  
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %Datei%"') do set "Episode=%%b"  
>>"%KF%" echo %Zaehler%-%Titel%-%Episode%-%Speicher%(-%RelPfad%)  
set /a Zaehler+=1
goto :eof
Grüße
bastla
Member: Jamesb10
Jamesb10 Mar 27, 2014 at 05:04:43 (UTC)
Goto Top
Hallo bastla

werde es zum Wochenende testen,
hoffe das ich da ein bisschen mehr Ruhe habe.

Jamesb-10
Member: Jamesb10
Jamesb10 Apr 01, 2014 updated at 08:09:34 (UTC)
Goto Top
Hallo

Da bei mir zur Zeit ein Netzwerk-problem besteht, habe ich einen Ordner erstellt
mit vier Aufnahmen.

Durch zufall habe ich diese gewählt:

%2012
Alphas
\---1.01a_Zeit_zu_töten_(1)
Body_of_Proof
\---Maiglöckchen_(8)_#2A_Krimiserie,_USA_2011
\---%1.01_Die_Rechtsmedizinerin

Habe dann zum testen das alte script mit Info.vdr datei ausgeführt. Ergebniss:

1--???--???--test-alt(--012\2009-12-06.10.26.50.99.rec)

Soweit in Ordnung, da nur eine info.vdr datei vorhanden ist.
Kein Eintrag in Titel und Episode, da % vorm Ordner steht.
Nur beim Ordnerpfad fehlen zwei Zeichen:

Richtig wäre: (--%2012\2009-12-06.10.26.50.99.rec)

Dann das alte Script abgeändert, ausgeführt mit der Info.txt datei zum suchen:

1--Alphas (info.txt)--1.01a Zeit zu töten (1)--test-alt(--Alphas\1.01a_Zeit_zu_t”ten_(1)\2013-02-14.20.15.155-0.rec)
2--Body of Proof (info.txt)--Maiglöckchen (8) * Krimiserie, USA 2011--test-alt(--Body_of_Proof\Maigl”ckchen_(8)_#2A_Krimiserie,_USA_2011\2013-09-25.01.28.18-0.rec)
3--???--???--test-alt(--Body_of_Proof\.01_Die_Rechtsmedizinerin\2013-08-11.11.57.18-0.rec)

Richtig wäre in zeile 1 (--Alphas\1.01a_Zeit_zu_töten_(1)\2013-02-14.20.15.155-0.rec)

Das wort t"ten wird nicht richtig ?erkannt, ausgegeben?

und in zeile 3 (--Body_of_Proof\%1.01_Die_Rechtsmedizinerin\2013-08-11.11.57.18-0.rec)

fehlen zwei zeichen.

und dann mit beiden dateien:

for /f "delims=" %%i in ('dir /s /b "%%r\info.txt" /s /b "%%r\info.vdr"2^>nul') do call :ProcessFile "%%i" "%%r" "%%s"  

ergebniss so wie oben, halt nur in einer Liste.

Das "neue script" gibt leider keine txt datei aus:
schau mal Bitte rüber ob ich es richtig übernommen habe.

@echo off & setlocal
set "KF=C:\Users\Dieter\Desktop\Ordner liste erstellen\das-neue.txt"  

set /a Zaehler=1
del "%KF%" 2>nul  
for %%a in ("d:\recordings@Speicher 1") do (  
    for /f "tokens=1-2 delims=@" %%r in (%%a) do (  
        for /f "delims=" %%i in ('dir /s /b "%%r\info.txt" /s /b "%%r\info.vdr"2^>nul') do set "RelPfad=%%~dpi" & set "Datei=%%i" & call :ProcessFile "%%r" "%%s"  
    )
)
goto :eof

:ProcessFile
set "SpeicherPfad=%~1"  
set "Speicher=%~2"  
set "RelPfad=%RelPfad:~,-1%"  
call set "RelPfad=%%RelPfad:%SpeicherPfad%\=%%"  
set "Titel=???"  
for /f "tokens=1*" %%a in ('findstr /b/c:"T " "%Datei%"') do set "Titel=%%b"  
set "Episode=???"  
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %Datei%"') do set "Episode=%%b"  
>>"%KF%"   

echo %Zaehler%--%Titel%--%Episode%--%Speicher%(--%RelPfad%)
set /a Zaehler+=1
goto :eof

Gruß Jameb10