Textzeile aus Datei Kopieren und sortieren

pago159
Goto Top
Hallo Kollegen,

ich bräuchte mal wieder eure Hilfe.

Folgende Ausgangssituation ist gegeben:

  • Testdokument.txt mit folgendem Inhalt:

Vorher:

( sind Zahlenfolgen, welche immer sechsstellig sind.)

Nachher:

Benötigt:

  • Textdokument in dem nur die Gelöschten Dateien angegeben sind und nach Zahl aufsteigend sortiert.

Ich habe mir gedacht, dass das ganze per Batch machbar ist.

gedacht habe ich an:

findstr "
wurde gelöscht" %systemroot%\TestdokumentTEST.txt

Damit sollte doch eigentlich der String in das neue Textdokument Kopiert werden (Textdokument wird auf Batch gezogen)

Vielen Dank schonmal im vorraus
Grapper

Content-Key: 166459

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

Ausgedruckt am: 24.05.2022 um 20:05 Uhr

Mitglied: bastla
bastla 17.05.2011 um 21:38:17 Uhr
Goto Top
Hallo Grapper!

Könntest Du das bitte mit einem "Vorher-Nachher"-Vergleich der Dateiinhalte (gerne auch mit "Code"-Formatierung) deutlicher darstellen? Derzeit kann ich Dir nicht (weit genug ;-) face-wink) folgen ...

[Edit] Danke, jetzt geht's ;-) face-wink[/Edit]

Grüße
bastla
Mitglied: bastla
bastla 17.05.2011 um 21:47:56 Uhr
Goto Top
... etwa so:
- unter der Annahme, dass in "%systemroot%\TestdokumentTEST.txt" das Ergebnis stehen soll (und etwas abgekürzt, um ev Codierungsproblemen hinsichtlich des Umlautes vorzubeugen) ...

Grüße
bastla
Mitglied: Pago159
Pago159 17.05.2011 um 22:01:59 Uhr
Goto Top
Danke, das hört sich schonmal gut an,
werde das morgen direkt mal teste,
habe gerade die Datei nicht vor mir.

Hast du vll auch noch eine gute Seite,
mit der ich mich in die Batch Programmierung einarbeiten kann?
Werde dies wohl jetzt doch öfter benötigen, als gedacht.

Lg GRapper
Mitglied: ovu-p86
ovu-p86 18.05.2011, aktualisiert am 18.10.2012 um 18:46:55 Uhr
Goto Top
Hallo GRapper,


mir gehts ähnlich. Versuch mich auch gerade ins Batchen einzuarbeiten.
Bin noch nicht so lange hier dabei, aber ne Menge gelernt, gerade auch von den
Kommentaren unserer Batch-Spezies ( immer eine Anregung zur Repertoirerweiterung).

Ich weiß nicht, ob es eine alles erschlagende Abhandlung zum Batchen gibt.
ich hab das jetzt so gemacht:

- Hab mir mit Cuecards ( http://www.mhst.net/cuecards2/ ) ne kl. Datenbank in Baumstruktur mit den
wichtigsten Befehlen angelegt, wo ich einfach das Ergebnis von "Befehl /?" drin habe,
ggf. mit ergänzenden Kommentaren.

- außerdem hat mir sehr geholfen die Hilfe zum für mich effizientesten Batch-Befehl "For"
https://www.administrator.de/Tutorial_zur_FOR-Schleife.html
sowie die Abhandlung zu Variablen
https://www.administrator.de/wissen/wie-arbeite-ich-mit-batch-umgebungsv ...

Für mich das schlimmste Kapitel sind die Leerzeichen in Pfaden, Dateinamen u.s.w., weil dann in den
Batches alles so unberechenbar wird.

- deshalb hab ich mir jetzt das Grundprinzip angewöhnt von Vornherein den Batch so anzulegen, daß
Leerzeichen erlaubt sind. Dann gewöhnt man sich dran und hat eine Fehlerquelle weniger. Zum Testen
baue ich deshalb immer gleich Verzeichnisse/Dateinamen etc. mit Leerzeichen. Dann ists auch
allgemeingültig.

Erstaunlich finde ich immer wieder was man so alles mit Batch/Cmd so machen kann.
Das sind meine bisherigen Erfahrungen. Dank nochmal an unsere Batch-Spezies.


Gruß

Uwe
Mitglied: Pago159
Pago159 18.05.2011 um 14:16:16 Uhr
Goto Top
@ Uwe:

Danke für die Links, werde mir das nachher mal schnell anschauen.

@ bastla:

Deine Zeile funktioniert super,
allerdings musste ich gerade feststellen, dass ich oben etwas Quatsch geschrieben habe:


kann leider auch in dem Dokument vorkommen.
Dann wird ja die ganze Zeile rausgezogen.

Ich benötige allerdings nur die stelle :

"++++++ wurde gelöscht"
gibt es da vll auch eine lösung für?

Danke nochmal im vorraus.

Lg Grapper
Mitglied: bastla
bastla 18.05.2011 um 14:21:31 Uhr
Goto Top
Hallo Grapper!

Riskier mal einen Blick in die Hilfe (findstr /?) - da stößt Du dann sicherlich auf zB "/e" ...

... oder was meinst Du mit der "Stelle"?

Grüße
bastla
Mitglied: Pago159
Pago159 18.05.2011 um 14:30:06 Uhr
Goto Top
Also bräuche ich um den String rauszubekommen /L
nur wird diese funktion auch die Zahl mitnehmen, da diese ja immer anders ist?
Dafür sind dann bestimmt die ...... da oder?

<EDIT>
Wenn ich allerdings die Platzhalter eintrage, dann wird der Text nicht mehr gefunden, bzw. das neue Textdokument bleibt leer.
Code ohne Plkatzhalter:


Code mit Platzhalter:


Alternativ habe ich es auch schon mit * versucht:



</EDIT>
Lg GRapper
Mitglied: bastla
bastla 18.05.2011 um 14:47:45 Uhr
Goto Top
Hallo Grapper!

Ich weiß auch dieses Mal nicht, was Du genau meinst - in
gibt es schon keine Zeile, die zu
passt.

Dann schreibst Du zwar immer wieder von "Zahlen", es kommen in Deinen Beispielen aber keine vor, und was Du letztendlich tatsächlich als Ergebnis haben möchtest, kann ich Deinen Ausführungen ebenfalls nicht exakt entnehmen - wie wäre es daher einmal mit einem "richtigen" "Vorher - Nachher"-Beispiel - meinetwegen mit veränderten / anonymisierten Daten, aber zumindest mit erkennbaren Strukturen ...

Und gleich noch vorweg: "findstr" findet Zeilen - eine weitere Zerlegung müsste dann auf andere Weise erfolgen.

Grüße
bastla
Mitglied: Pago159
Pago159 18.05.2011 um 14:54:12 Uhr
Goto Top
Ok, ich dachte dass "findstr" wirklich eine Textstelle finden kann.

also nochmal ganz genau:

Der Text schaut folgendermaßen aus:


daraus wird der übersichthalber nur benötigt:

deswegen habe ich das ganze mit den Platzhaltern versucht, welche ja auch in der Hilfe /? angegeben werden.

Lg GRapper
Mitglied: bastla
bastla 18.05.2011 um 16:00:13 Uhr
Goto Top
Hallo Grapper!

Dann versuch das mal so:
Damit sollten sogar mehrfach in einer Zeile vorhandene "###### wurde gelöscht" gefunden werden (wenn sie sauber durch Leerzeichen voneinander getrennt sind) ... ;-) face-wink

Grüße
bastla
Mitglied: Pago159
Pago159 18.05.2011 um 16:26:17 Uhr
Goto Top
Danke Bastla,
die Batch funktioniert super.

Sorry nochmal für meine Missverständliche ausdrucksweise.

Lg Grapper
Mitglied: Pago159
Pago159 20.05.2011 um 16:24:07 Uhr
Goto Top
Hey Batsla,

eine Frage Quält mich da dann doch noch!

Woher weis diese Batch Datei,
wo die Ausgabedatei hin soll?

Lg GRapper
Mitglied: bastla
bastla 20.05.2011 um 16:50:53 Uhr
Goto Top
Hallo Grapper!

Ich hätte natürlich nicht ganz so schreibfaul sein und die Variable %Aus% (siehe Zeile 2) auch %Ausgabe% nennen können ... ;-) face-wink

Grüße
bastla
Mitglied: Pago159
Pago159 20.05.2011 um 16:57:51 Uhr
Goto Top

sagt der Batch aber doch nicht, wo diese Datei "TestdokumentTEST.txt" liegen soll, wenn sie nicht vorhanden ist,
diese Zeile gibt doch lediglich den Namen der Datei an oder sehe ich dies Falsch?

<Edit>
Kleiner Denkfehler von mir ;)
Mein Systemroot liegt gerade auf H:\
deshalb ist die Frage aufgekommen,
hat sich also von selbst geklärt

trotzdem Danke

</EDIT>
Lg Grapper
Mitglied: bastla
bastla 20.05.2011 um 17:03:52 Uhr
Goto Top
Hallo Grapper!

Nur der Ordnung halber: Natürlich kann nicht nur ein Name, sondern auch ein Pfad angegeben werden:
Grüße
bastla