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

Zeilen aus txt mittels Batch auslesen

Frage Entwicklung Batch & Shell

Mitglied: 65984

65984 (Level 1)

27.04.2009, aktualisiert 15:54 Uhr, 5337 Aufrufe, 3 Kommentare

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
Mitglied: LotPings
27.04.2009 um 12:19 Uhr
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
Bitte warten ..
Mitglied: 65984
27.04.2009 um 15:47 Uhr
danke für deine antwort lotpings

1. kannst du vllt die Code zeile posten?

2.
mein problem war das die variable in anführungszeichen gesetzt werden musste und das das Maschinendatum welches in %date% steht ein anderes format hatte wie das welches zu überprüfen galt also musste ich das auch noch irgendwie ausgeben...am ende kam das raus:

if NOT "%Backuplog%"=="%date:~6,4%-%date:~3,2%-%date:~0,2% 10:41 - Backup erfolgreich geschrieben" goto :ERROR

also 2 ist abgeschlossen... 1 allerdings nicht
Bitte warten ..
Mitglied: LotPings
27.04.2009 um 16:42 Uhr
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.
01.
@echo off&setlocal EnableDelayedExpansion 
02.
set Input=Hosts 
03.
:: Zeilen zählen 
04.
for /F %%A in ('find /C /V "" ^<%Input%') do set Lines=%%A 
05.
:: Rechnen 
06.
set /A Lines-=2 
07.
:: Ausgeben auf den Bildschirm 
08.
More +%Lines% <%Input% 
09.
:: Ausgeben  in Variablen 
10.
set cnt=0 
11.
for /F "delims=" %%A in ('More +%Lines% ^<%Input%') Do set /A "cnt+=1"&set "Var!cnt!=%%A" 
12.
set Var
Only "Braintested"

Gruß
LotPings
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...