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, 3514 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (5)

Frage von freshman2017 zum Thema Batch & Shell ...

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

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

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...