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

Batch - Textzeile an Datei anhängen

Frage Entwicklung Batch & Shell

Mitglied: mak-xxl

mak-xxl (Level 1) - Jetzt verbinden

10.01.2012 um 19:53 Uhr, 3482 Aufrufe, 4 Kommentare

Liebe Gemeinde,

allen ein fröhliches und gesundes Jahr 2012!

Nach vielen Jahren des Mitlesens und Nachschauens hier im Forum (vielen Dank an alle!) habe ich heute ein Problem zu schildern, mit dem ich nicht vorankomme.

Also: Ich verwende die verschiedensten Batch-Scripte, um Aufgaben zu automatisieren. Da diese Scripte (fast) alle per Cron gerufen werden, habe ich mir angewöhnt, den Ausführungszeitpunkt vom Script im Script speichern zu lassen. Es wird also z.B. als letztes die folgende Zeile ausgeführt:

01.
attrib -r %0 & echo :: Ausführung am: %date% %time% >> %0 & attrib +r %0 & exit /b 0
Selbst bei Jobs, die täglich einmal laufen, ist der Größenzuwachs nicht bedeutend, der gesehene Vorteil war das Nichtvorhandensein von extra Log-Dateien.
Nun gibt es Batch-Jobs, die zur Laufzeit eines Rechners (ca. 12-16h/d) etwa alle 5min aufgerufen werden - bei diesen stellt sich nun die Frage:
Gibt es eine Möglichkeit, eine einzelne Zeile (á la 'Letze Laufzeit ...') anzufügen und dabei die vorherige Zeile zu ersetzen|löschen|überschreiben?

Ich bin überzeugt, das Problem hatten andere auch schon, nur die Suche ergibt nichts Neues, leider.

Vielen Dank fürs Draufschauen und Eure Zeit - herzliche Grüße Mario
Mitglied: bastla
10.01.2012 um 21:14 Uhr
Hallo mak-xxl und willkommen als Mitglied!

Ich würde am ehesten die letzte Zeile anhand eines eindeutigen Begriffes (zB "Ausführung") "aussortieren" - ungetestet etwa so:
01.
set "T=%temp%\Batch.tmp 
02.
findstr /v "Ausführung" %0>%T% 
03.
>>%T% echo :: Ausführung am: %date% %time% 
04.
move %T% %0 & attrib +r %0 & exit /b 0
Grüße
bastla
Bitte warten ..
Mitglied: mak-xxl
11.01.2012 um 07:52 Uhr
Guten Morgen,

vielen Dank für die Antwort - das hat schon ungetestet fast funktioniert und vor allem die Richtung aufgezeigt.
Ich hänge die geringfügig modifizierte Lösung unten an, falls jemand mal so etwas brauchen kann.
Die Änderungen betrafen Zeile 2, der Schalter '/b' zwingt findstr zum Lesen ab Zeilenbeginn, sonst passt das Muster auch auf diese und die nächste Zeile - sie werden dann nicht mit umkopiert.
In der vierten Zeile ist noch ein 'attrib -r %0' notwendig, sonst generiert der move-Befehl eine Abfrage.

01.
set "T=%temp%\Batch.tmp" 
02.
findstr /b /v ":: Letzte Ausführung" %0>%T% 
03.
>>%T% echo :: Letzte Ausführung am: %date% %time% 
04.
attrib -r %0 & move %T% %0 & attrib +r %0 & exit /b 0 
05.
 
06.
:: Letzte Ausführung am: 11.01.2012  7:40:40,29
Vielen Dank an bastla, das Forum und alle, die sich Zeit genommen haben - Frohes Schaffen weiterhin! Mario

Zusatz:

Die Aussage " ;der Schalter '/b' zwingt findstr zum Lesen ab Zeilenbeginn" muss besser heißen: "der Schalter '/b' zwingt findstr zum Vergleichen ab Zeilenbeginn".
Außerdem wurde der Schalter '/c' zugefügt (genauer Stringvergleich), sonst werden alle mit '::' beginnenden Zeilen gefunden, und das sind in einem Batch-Script u. U. so einige ...
Falls mehrere Scripte zeitgleich laufen, sei noch an 'set "T=%temp%\%~n0.tmp"' gedacht.

So, nochmals Dank - Mario
Bitte warten ..
Mitglied: bastla
11.01.2012 um 09:24 Uhr
Hallo mak-xxl!

Wenn Du ":: Letzte Ausführung" als Suchbegriff verwendest, wäre, wegen des Leerzeichens, auch noch die Option "/c:" zu verwenden - es werden ansonsten alle mit "::" oder mit "Letzte" oder mit "Ausführung" beginnenden Zeilen gesucht (und eliminiert) ...

Grüße
bastla
Bitte warten ..
Mitglied: mak-xxl
11.01.2012 um 10:54 Uhr
Hallo bastla!

Das kommt davon, wenn man einen Beitrag so langsam schreibt wie ich (zwischendurch in den Formatierungsrichtlinien geblättert) - dann sind die anderen wieder fixer.
Die Auskommentierung vor 'Letzte Ausführung ...' ist zur Sicherheit eingebaut, falls das Script mal über sein Ende rennt - dt. Umlaute richten in anderen Environments manchmal wüste Dinge an ...

Nochmals ein herzliches Dankeschön für die Hilfe - Mario
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
Batch: Word Datei kopieren und umbennen (9)

Frage von ExcelNoob177 zum Thema Batch & Shell ...

Batch & Shell
Neuere Datei per Batch ausfinding machen (2)

Frage von chattie zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...