Strings unbekannter Länge mit Windows 8-Batch aus einer Datei auslesen

Cannonball

Admiral Special
Mitglied seit
10.04.2003
Beiträge
1.176
Renomée
9
Standort
Markkleeberg
... und in eine neue Datei kopieren.

Ja, das ist grob umrissen die Aufgabe, die ich bewältigen möchten.

Also, ich habe eine Datei "Source.txt", die enthält eine unbekannte Anzahl Strings (Links) von unbekannter Länge. Was man aber weiß ist, dass sie stets nach einem " stehen, mit http://popplers5 beginnen und mit .0 enden, wiederum gefolgt von einem ". Wenn der String gefunden ist, also z.B. "http://popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=5ca3f14b3d744e630fa388666766f15b&id=542624910&stream=1&ts=1389850842.0" soll dieser in eine neue Datei gspeichert werden, genauso wie alle nachfolgenden Strings gleicher Bauart. Wenn alle Strings gefunden und in dieselbe neue Datei kopiert worden sind, ist die Aufgabe erledigt.

Leider sind meine Kenntniss in Sachen Batch-Programmierung nicht der Brüller, so dass ich mit den diversen Fundstellen in Web zu "find" und "findstr" nicht wirklich etwas anfangen kann. Deshalb zunächst die Frage: meint Ihr, dass das als Batch überhaupt zu realisieren ist?
 
Im Prinzip kann man mit Batch Textdateien zeilenweise durchgehen. Aber du willst doch nicht ernsthaft mittels Batch URLs aus irgendeiner Datei rausziehen, oder? Selbst mit den RegEx von findstr würde sowas ziemlich komplex. Eine Lösung für ganz Arme würde ich wahrscheinlich mit grep und/oder sed angehen, die es auch für Windows gibt. Einfacher für dich dürfte aber ein grafisches Tool sein; ich kenne aber keines auf Anhieb.

MfG Dalait
 
Also ich glaube auch nicht dass du mit einer reinen Batch Datei weiter kommen wirst.
Es gibt aber so etwas wie VBScript das sollte unter Windows funktionieren.
Es wäre dann möglich dass du die Datei "Source.txt" komplett liest und alle matches ausgibst.
Siehe zum Beispiel hier: http://ranvens.blogspot.de/2011/03/parsing-text-file-using-vbscript.html
REGEX:
Code:
"(http://popplers5[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|](?<=[0]))"
Verwendung in VBScript:
Code:
objRegEx.Pattern = """(http://popplers5[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|](?<=[0]))"""
Den Rest wirst du dann sicherlich hinbekommen.
Hinweis: Die URL ohne " ist in der 1. "Capture"-Group. Unter Umständen musst du also noch ein
Code:
ResultString = objRegEx.Replace(strMatch, "$1")
auf den getroffenen Link anwenden damit du im ResultString dann wirklich nur die URL ohne " bekommst.
 
Zurück
Oben Unten