Textzeile aus Datei Kopieren und sortieren
Hallo Kollegen,
ich bräuchte mal wieder eure Hilfe.
Folgende Ausgangssituation ist gegeben:
Vorher:
( sind Zahlenfolgen, welche immer sechsstellig sind.)
Nachher:
Benötigt:
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
ich bräuchte mal wieder eure Hilfe.
Folgende Ausgangssituation ist gegeben:
- Testdokument.txt mit folgendem Inhalt:
Vorher:
xyz
abcd
defg
****** wurde gelöscht
sgbnj
jklöp
****** wurde gelöscht
Nachher:
****** wurde gelöscht
****** wurde gelöscht
****** wurde gelöscht
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 166459
Url: https://administrator.de/contentid/166459
Ausgedruckt am: 24.11.2024 um 15:11 Uhr
15 Kommentare
Neuester Kommentar
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"
Tutorial zur FOR-Schleife
sowie die Abhandlung zu Variablen
Wie Arbeite ich mit Batch UmgebungsVariablen? Erstellung Umgang Erweiterungen Veränderungen
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
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"
Tutorial zur FOR-Schleife
sowie die Abhandlung zu Variablen
Wie Arbeite ich mit Batch UmgebungsVariablen? Erstellung Umgang Erweiterungen Veränderungen
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
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: "
Grüße
bastla
Ich weiß auch dieses Mal nicht, was Du genau meinst - in
kljbdakj asjdnkj ****** wurde gelöscht. dafds fsd
lakfopjkad ****** wurde gelöscht.
****** wurde gelöscht. sjah spdhfpuah
++++++ wurde gelöscht
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
Hallo Grapper!
Dann versuch das mal so:
Damit sollten sogar mehrfach in einer Zeile vorhandene "
Grüße
bastla
Dann versuch das mal so:
@echo off & setlocal
set "Aus=TestdokumentTEST.txt"
set "Such1=wurde"
set "Such2=gelöscht"
del "%Aus%" 2>nul
for /f "delims=" %%i in ('findstr /c:"%Such1% %Such2%" %1') do call :ProcessLine %%i
sort "%Aus%" /o "%Aus%"
goto :eof
:ProcessLine
set "Nr="
set "Gef="
:Loop
if "%1"=="" goto :eof
if %1==%Such1% (
set "Gef=true"
) else (
echo %1|findstr /c:%Such2%>nul && (
if defined Gef >>"%Aus%" echo %Nr% %Such1% %Such2%
set Gef=
) || (
set "Nr=%1"
)
)
shift
goto :Loop
###### wurde gelöscht
" gefunden werden (wenn sie sauber durch Leerzeichen voneinander getrennt sind) ... Grüße
bastla