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
GELÖST

mit batch in txt lesen und schreiben

Frage Entwicklung Batch & Shell

Mitglied: ppmk22

ppmk22 (Level 1) - Jetzt verbinden

03.03.2008, aktualisiert 05.03.2008, 6480 Aufrufe, 8 Kommentare

Hallo Team

Möchte eine batch-Datei erstellen die aus einer txt eine variable holt 1 dazuzählt wieder rein schreibt und speichert.
Habe heute schon viele Beiträge durchgearbeitet, aber leider nichts verstanden. Bin mir sicher, das man anhand der Beiträge hier im Forum so was zusammen gebastelt bekommt. Ich habe es aber nicht hin bekommen, da ich davon keinen Plan habe.
Und um klein anzufangen meine erste Frage.
Ich habe eine Datei E:\log.txt
Inhalt:
starts = 98
fehler = 12
verbindungen = 25

Nun würde ich gerne die mittels batch die Zahlen aus geben.

@echo off
echo Es waren %zahl% starts
echo Es waren %zahl% fehler
echo Es waren %zahl% verbindungen
pause

Wie sollte der richtige Code aussehen?

Gruß
Petra
Mitglied: miniversum
03.03.2008 um 19:05 Uhr
Das müste so gehen:
@echo off
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "starts =" "E:\log.txt"') do set "starts=%%i"
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "fehler =" "E:\log.txt"') do set "fehler=%%i"
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "verbindungen =" "E:\log.txt"') do set "verbindungen=%%i"
echo Es waren %starts% starts
echo Es waren %fehler% fehler
echo Es waren %verbindungen% verbindungen
pause

miniversum
Bitte warten ..
Mitglied: ppmk22
03.03.2008 um 19:49 Uhr
Vielen Dank miniversum

Wie würde denn jetzt der Code sein, um den Zähler von starts um einen zu erhöhen?

Gruß Petra
Bitte warten ..
Mitglied: miniversum
03.03.2008 um 20:07 Uhr
das wäre dann
set /a starts=starts+1
oder
set /a starts+=1
Näheres kannst du in der Hilfe vom set befehl nachlesen (set /?)
Bitte warten ..
Mitglied: ppmk22
03.03.2008 um 20:17 Uhr
Okay, danke.

Und wie bekomme ich nun die 99 in die Datei?

Das geht doch eleganter als so, oder?

echo > E:\log.txt starts = %starts%
echo >> E:\log.txt fehler = %fehler%
echo >> E:\log.txt verbindungen = %verbindungen%

Wobei das auch nicht richtig hin haut.

Gruß Petra
Bitte warten ..
Mitglied: miniversum
03.03.2008 um 21:23 Uhr
Nicht ganz.
So gehts:
echo starts = %starts% > E:\log.txt
echo fehler = %fehler% >>E:\log.txt
echo verbindungen = %verbindungen% >>E:\log.txt
Wobei das halt wirklich die einfachste Lösung ist und auch nur wenn das alle Zeilen sind die in der Datei stehen. Wenn du wirklich Zeilen einfügen willst wird das dann etwas aufwendiger. Ist aber auch möglich.
Bitte warten ..
Mitglied: ppmk22
04.03.2008 um 00:36 Uhr
Wie würde den die bessere Lösung aussehen?

Gruß Petra
Bitte warten ..
Mitglied: Biber
04.03.2008 um 07:57 Uhr
Moin ppmk22,

suche mal mittels der Forumssuche nach "Zeile in txt einfügen" oder ähnlichem.
Dann findest Du einige Beispiele.
Ein Nettes ist Batch - String suchen und in der Datei Zeile mit berechneten Inhalt einfügen.

Da Batch bzw. die CMD.exe grundsätzlich zeilenorientiert arbeitet und außerdem nicht "in" einer Datei ändern kann (sondern immer nur aus einem Kanal den Input lesen und in einen anderen den Output schreiben), deshalb solltest Du zum Texte ändern nur dann Batch verwenden, wenn nun gar nichts anderes zur Hand ist.
Unproblematisch ist immer nur das komplette Neu-Schreiben einer Datei oder das Löschen/Hinten-Anfügen von Zeilen.
Insbesondere wenn Deine Datei (zumindest in der Version 2.0) den Aufbau einer Windows *.INI-Datei haben wird, dann verwende möglichst früh einen der vielen Freeware INI-Datei-Bearbeiter.

Oder lass uns hier im Forum einen zusammenschroten - aber dann mit VBS statt mit native Batch.

Grüße
Biber
Bitte warten ..
Mitglied: ppmk22
05.03.2008 um 17:29 Uhr
Danke für alles

Gruß
Petra
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Maximale Größe zu verarbeitender txt-Dateien mit Batch (5)

Frage von Muck1303 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Eingabe in Datei schreiben (2)

Frage von MedicalAd zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...