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
Kommentar vom Moderator Biber am 07.03.2010 um 14: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
GELÖST

In einer txt Datei verschiedene Zeilen löschen

Frage Entwicklung Batch & Shell

Mitglied: Jamesb10

Jamesb10 (Level 1) - Jetzt verbinden

05.03.2010, aktualisiert 25.03.2014, 5110 Aufrufe, 28 Kommentare, 1 Danke

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
28 Antworten
Mitglied: bastla
05.03.2010 um 20:04 Uhr
Hallo Jamesb10 und willkommen im Forum!

Das Ausfiltern von Zeilen lässt sich mit "findstr /v" erreichen - daher zB als nächste Zeilen:
01.
set "KT=%temp%\kat.txt" 
02.
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:
01.
set "KF=C:\Katalog_fertig.txt" 
02.
set "Entf=".50.99.rec" 
03.
set E=%temp%\Entf.vbs 
04.
>%E% echo F=WScript.Arguments(0):T=CreateObject("Scripting.FileSystemObject").OpenTextFile(F).ReadAll:WScript.Echo Replace(T,"%Entf%","") 
05.
cscript //nologo %E% %KT%>"%KF%"
Das Ergebnis findest Du dann in "C:\Katalog_fertig.txt".

Grüße
bastla
Bitte warten ..
Mitglied: Jamesb10
06.03.2010 um 08:31 Uhr
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?
Bitte warten ..
Mitglied: bastla
06.03.2010 um 09:10 Uhr
Hallo Jamesb10!

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

Die (noch leicht angepasste) Komplettfassung sähe dann so aus:
01.
@echo off & setlocal 
02.
set "katalog=c:\Speicher_1.txt" 
03.
set "KF=C:\Katalog_fertig.txt" 
04.
set "Entf=.50.99.rec" 
05.
 
06.
tree "d:\recordings" /f /a >"%katalog%" 
07.
set "KT=%temp%\kat.txt" 
08.
findstr /v "\.vdr" "%katalog%"|findstr /e /v "| | |">%KT% 
09.
 
10.
set E=%temp%\Entf.vbs 
11.
>%E% echo F=WScript.Arguments(0):WScript.Echo Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(F).ReadAll,"%Entf%","") 
12.
cscript //nologo %E% %KT%>"%KF%"
[Edit] Anführungszeichen in Zeile 2 zurechtgerückt [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Jamesb10
06.03.2010 um 09:50 Uhr
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?

Mit freundlichen Grüßen Jamesb10
Bitte warten ..
Mitglied: bastla
06.03.2010 um 09:58 Uhr
Hallo Kamesb10!
Wie würde diese Batch aussehen?
Gegenfrage: Wie würde Dein gewünschtes Ergebnis aussehen?

Grüße
bastla
Bitte warten ..
Mitglied: bastla
06.03.2010 um 10:14 Uhr
... da ich momentan nicht mehr Zeit habe, ein schematischer Ansatz:
01.
@echo off & setlocal 
02.
set "Basis=D:\RECORDINGS" 
03.
set "KF=D:\Katalog_fertig.txt" 
04.
 
05.
del "%KF%" 2>nul 
06.
for /f "delims=" %%i in ('dir /s /b "%Basis%\info.vdr"') do call :ProcessFile "%%i" 
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
set "RelPfad=%~dp1%" 
11.
set "RelPfad=%RelPfad:~,-1%" 
12.
call set "RelPfad=%%RelPfad:%Basis%\=%%" 
13.
for /f "tokens=1*" %%a in ('findstr /b /c:"T " %1') do set "Titel=%%b" 
14.
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %1') do set "Episode=%%b" 
15.
echo %RelPfad% 
16.
echo %Titel% 
17.
echo %Episode% 
18.
echo\ 
19.
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
Bitte warten ..
Mitglied: Jamesb10
06.03.2010 um 10:48 Uhr
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
Bitte warten ..
Mitglied: bastla
06.03.2010 um 15:33 Uhr
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
Bitte warten ..
Mitglied: Jamesb10
06.03.2010 um 18:28 Uhr
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
Bitte warten ..
Mitglied: bastla
06.03.2010 um 18:37 Uhr
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
Bitte warten ..
Mitglied: Jamesb10
07.03.2010 um 11:30 Uhr
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?

Mit freundlichen Grüßen Jamesb10
Bitte warten ..
Mitglied: bastla
07.03.2010 um 13:59 Uhr
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
Bitte warten ..
Mitglied: Biber
07.03.2010 um 14:08 Uhr
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...

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
Bitte warten ..
Mitglied: bastla
07.03.2010 um 14:13 Uhr
@Biber
Danke für den Versuch der Ehrenrettung - allerdings wäre ich nicht davon ausgegangen, dass Jamesb10 mir (oder dem von mir verbrochenen Batch) den Umbenams-Fehler anlasten wollte ...

Grüße
bastla

P.S.: Es gibt übrigens neben dem "Umbennen" noch mehr gute Gründe, den Ort "Flagranti" zu meiden ...
Bitte warten ..
Mitglied: Jamesb10
07.03.2010 um 19:36 Uhr
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.

Mit freundlichen Grüßen Jamesb10
Bitte warten ..
Mitglied: bastla
07.03.2010 um 20:05 Uhr
Hallo Jamesb10!
Die modifizierte Zeile 6 geht auch nur bis "Der Marshal".
... was mich leider nicht wirklich überrascht ...

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
Bitte warten ..
Mitglied: Jamesb10
12.03.2010 um 09:24 Uhr
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
Bitte warten ..
Mitglied: bastla
12.03.2010 um 21:39 Uhr
Hallo Jamesb10!

Eine adaptierte Version des Batches:
01.
@echo off & setlocal 
02.
set "KF=D:\Katalog_fertig.txt" 
03.
 
04.
set /a Zaehler=1 
05.
del "%KF%" 2>nul 
06.
for %%s in (d:\recordings e:\recordings f:\recordings \\vdr\hd0\recordings \\vdr\hd\recordings \\vdr1\hd\recordings \\vdr2\hd\recordings) do ( 
07.
    for /f "delims=" %%i in ('dir /s /b "%%s\info.vdr"') do call :ProcessFile "%%i" "%%s" 
08.
09.
goto :eof 
10.
 
11.
:ProcessFile 
12.
set "Speicher=%~2" 
13.
set "RelPfad=%~dp1%" 
14.
set "RelPfad=%RelPfad:~,-1%" 
15.
call set "RelPfad=%%RelPfad:%Speicher%\=%%" 
16.
set "Titel=???" 
17.
for /f "tokens=1*" %%a in ('findstr /b /c:"T " %1') do set "Titel=%%b" 
18.
set "Episode=???" 
19.
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %1') do set "Episode=%%b" 
20.
>>"%KF%" echo %Zaehler%-%Titel%-%Episode%-%Speicher%(-%RelPfad%) 
21.
set /a Zaehler+=1 
22.
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
Bitte warten ..
Mitglied: Jamesb10
14.03.2010 um 08:56 Uhr
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
Bitte warten ..
Mitglied: bastla
14.03.2010 um 10:48 Uhr
Hallo Jamesb10!

Die Benennung des Speichers nach Deinem Wunsch sollte sich auch noch machen lassen - (ungetestet) etwa so:
01.
@echo off & setlocal 
02.
set "KF=D:\Katalog_fertig.txt" 
03.
 
04.
set /a Zaehler=1 
05.
del "%KF%" 2>nul 
06.
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 ( 
07.
    for /f "tokens=1-2 delims=@" %%r in (%%a) do ( 
08.
        for /f "delims=" %%i in ('dir /s /b "%%r\info.vdr" 2^>nul') do call :ProcessFile "%%i" "%%r" "%%s" 
09.
10.
11.
goto :eof 
12.
 
13.
:ProcessFile 
14.
set "SpeicherPfad=%~2" 
15.
set "Speicher=%~3" 
16.
set "RelPfad=%~dp1%" 
17.
set "RelPfad=%RelPfad:~,-1%" 
18.
call set "RelPfad=%%RelPfad:%SpeicherPfad%\=%%" 
19.
set "Titel=???" 
20.
for /f "tokens=1*" %%a in ('findstr /b /c:"T " %1') do set "Titel=%%b" 
21.
set "Episode=???" 
22.
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %1') do set "Episode=%%b" 
23.
>>"%KF%" echo %Zaehler%-%Titel%-%Episode%-%Speicher%(-%RelPfad%) 
24.
set /a Zaehler+=1 
25.
goto :eof
Noch viel Spaß bei der "Arbeit" ...

Grüße
bastla
Bitte warten ..
Mitglied: Jamesb10
14.03.2010 um 11:54 Uhr
Hallo bastla

*‹(•¿•)›.•´¯`•. KLASSE.•´¯`•.SUPER.•´¯`•.DANKE sagt.•´¯`•.‹(•¿•)›*Jamesb10
Bitte warten ..
Mitglied: Biber
14.03.2010 um 13:51 Uhr
[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]
Bitte warten ..
Mitglied: Jamesb10
25.03.2014 um 07:52 Uhr
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
Bitte warten ..
Mitglied: bastla
25.03.2014 um 23:45 Uhr
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 ...
Bitte warten ..
Mitglied: Jamesb10
26.03.2014 um 09:33 Uhr
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
Bitte warten ..
Mitglied: bastla
26.03.2014 um 17:12 Uhr
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 ):
01.
@echo off & setlocal 
02.
set "KF=D:\Katalog_fertig.txt" 
03.
 
04.
set /a Zaehler=1 
05.
del "%KF%" 2>nul 
06.
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 ( 
07.
    for /f "tokens=1-2 delims=@" %%r in (%%a) do ( 
08.
        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" 
09.
10.
11.
goto :eof 
12.
 
13.
:ProcessFile 
14.
set "SpeicherPfad=%~1" 
15.
set "Speicher=%~2" 
16.
set "RelPfad=%RelPfad:~,-1%" 
17.
call set "RelPfad=%%RelPfad:%SpeicherPfad%\=%%" 
18.
set "Titel=???" 
19.
for /f "tokens=1*" %%a in ('findstr /b /c:"T " "%Datei%"') do set "Titel=%%b" 
20.
set "Episode=???" 
21.
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %Datei%"') do set "Episode=%%b" 
22.
>>"%KF%" echo %Zaehler%-%Titel%-%Episode%-%Speicher%(-%RelPfad%) 
23.
set /a Zaehler+=1 
24.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Jamesb10
27.03.2014 um 06:04 Uhr
Hallo bastla

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

Jamesb-10
Bitte warten ..
Mitglied: Jamesb10
01.04.2014, aktualisiert um 10:09 Uhr
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:

01.
for /f "delims=" %%i in ('dir /s /b "%%r\info.txt" /s /b "%%r\info.vdr"2^>nul') do call :ProcessFile "%%i" "%%r" "%%s" 
02.
 
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.

01.
@echo off & setlocal 
02.
set "KF=C:\Users\Dieter\Desktop\Ordner liste erstellen\das-neue.txt" 
03.
 
04.
set /a Zaehler=1 
05.
del "%KF%" 2>nul 
06.
for %%a in ("d:\recordings@Speicher 1") do ( 
07.
    for /f "tokens=1-2 delims=@" %%r in (%%a) do ( 
08.
        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" 
09.
10.
11.
goto :eof 
12.
 
13.
:ProcessFile 
14.
set "SpeicherPfad=%~1" 
15.
set "Speicher=%~2" 
16.
set "RelPfad=%RelPfad:~,-1%" 
17.
call set "RelPfad=%%RelPfad:%SpeicherPfad%\=%%" 
18.
set "Titel=???" 
19.
for /f "tokens=1*" %%a in ('findstr /b/c:"T " "%Datei%"') do set "Titel=%%b" 
20.
set "Episode=???" 
21.
for /f "tokens=1*" %%a in ('findstr /b /c:"S " %Datei%"') do set "Episode=%%b" 
22.
>>"%KF%"  
23.
 
24.
echo %Zaehler%--%Titel%--%Episode%--%Speicher%(--%RelPfad%) 
25.
set /a Zaehler+=1 
26.
goto :eof 
27.
 
Gruß Jameb10
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Perl
gelöst Mit Perl aus einer Datei teilidentische Zeilen löschen (5)

Frage von Jeduja zum Thema Perl ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

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

Frage von Markus5579 zum Thema Batch & Shell ...

Webentwicklung
gelöst HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

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

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 (20)

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...