65984
Apr 27, 2009, updated at 13:54:31 (UTC)
5900
3
0
Zeilen aus txt mittels Batch auslesen
hallo zusammen,
ich habe zwei probleme an denen ich nicht mehr weiter komme:
1)
mein ziel ist es aus einer beliebigen txt datei deren länge und inhalt variabel sind die beiden letzten Zeile auslesen und anschließend je einer Variablen übergeben.
Könnt ihr mir da vielleicht weiterhelfen? Wäre echt cool.
2)
Bei einem anderen Beispiel wird die letzte Zeile ausgelesen.
for /F "Tokens=*" %%i in (irgendwas.txt) do Set string=%%i
Ziel hier ist diese Zeile zu vergleichen.
Diese sieht wie folgt aus:
2009-02-08 23:00 - Backup erfolgreich geschrieben
Datum ist variable das heisst ich könnte sie mit der systemvariable %DATE% vergleichen der rest ist konstant.
allerdings bekomm ich die variable string nicht mit einem tatsächlichen string verglichen...
Der Vergleich würde folgendermaßen aussehen
letzte zeile also %string% =="%date% 23:00 - Backup erfolgreich geschrieben"
Ich hoffe ich konnte mein problem deutlich genug beschreiben und danke euch schonmal für eure hilfe
lg
ich habe zwei probleme an denen ich nicht mehr weiter komme:
1)
mein ziel ist es aus einer beliebigen txt datei deren länge und inhalt variabel sind die beiden letzten Zeile auslesen und anschließend je einer Variablen übergeben.
Könnt ihr mir da vielleicht weiterhelfen? Wäre echt cool.
2)
Bei einem anderen Beispiel wird die letzte Zeile ausgelesen.
for /F "Tokens=*" %%i in (irgendwas.txt) do Set string=%%i
Ziel hier ist diese Zeile zu vergleichen.
Diese sieht wie folgt aus:
2009-02-08 23:00 - Backup erfolgreich geschrieben
Datum ist variable das heisst ich könnte sie mit der systemvariable %DATE% vergleichen der rest ist konstant.
allerdings bekomm ich die variable string nicht mit einem tatsächlichen string verglichen...
Der Vergleich würde folgendermaßen aussehen
letzte zeile also %string% =="%date% 23:00 - Backup erfolgreich geschrieben"
Ich hoffe ich konnte mein problem deutlich genug beschreiben und danke euch schonmal für eure hilfe
lg
Please also mark the comments that contributed to the solution of the article
Content-Key: 114725
Url: https://administrator.de/contentid/114725
Printed on: April 25, 2024 at 08:04 o'clock
3 Comments
Latest comment
High Azubi-DL / lg
1. Dafür gibt es eigentlich den Tail Befehl (auch Windows-Ports)
Das Nachbilden in Batch ist bei einem Windows ab w2k nicht schwer.
Zeilen Zählen mit find, 2 abziehen und mit more +x oder for /f "skip=x" nur die letzten 2 Zeilen ausgeben.
2. Wenn der Anfang von String genauso wie das Datum formatiert ist, Mit der Substring Funktion eben nur den
Angfang vergleichen.
if "%String:~0,10%"=="%date%" echo Datum ist von heute
Gruß
LotPings
1. Dafür gibt es eigentlich den Tail Befehl (auch Windows-Ports)
Das Nachbilden in Batch ist bei einem Windows ab w2k nicht schwer.
Zeilen Zählen mit find, 2 abziehen und mit more +x oder for /f "skip=x" nur die letzten 2 Zeilen ausgeben.
2. Wenn der Anfang von String genauso wie das Datum formatiert ist, Mit der Substring Funktion eben nur den
Angfang vergleichen.
if "%String:~0,10%"=="%date%" echo Datum ist von heute
Gruß
LotPings
Zitat von @65984:
danke für deine antwort lotpings
1. kannst du vllt die Code zeile posten?
Kann ich, ist mehr als eine Zeile, ich dachte allerdings DU solltest erstmal versuchen etwas mit der abstrakten Formulierung anzufangen.danke für deine antwort lotpings
1. kannst du vllt die Code zeile posten?
@echo off&setlocal EnableDelayedExpansion
set Input=Hosts
:: Zeilen zählen
for /F %%A in ('find /C /V "" ^<%Input%') do set Lines=%%A
:: Rechnen
set /A Lines-=2
:: Ausgeben auf den Bildschirm
More +%Lines% <%Input%
:: Ausgeben in Variablen
set cnt=0
for /F "delims=" %%A in ('More +%Lines% ^<%Input%') Do set /A "cnt+=1"&set "Var!cnt!=%%A"
set Var
Only "Braintested"
Gruß
LotPings