scanner
Goto Top

Datei via Bacht leeren, nicht Löschen

Hallo zusammen,
ich habe da mal eine Frage zum Thema Backup.
Ich habe bei einer Datei das Problem das ich sie nicht weglöschen darf,
diese jedoch teilweise so groß wird das sie die Geschwindigkeit beeinträchtigt.

So und nun hier meine Frage

Wie kann ich eine Datei auf ihre Größe kontrollieren ,
bei Überschreitung der Größe öffnen, den Inhalt herausnehmen,
in einer anderen Datei Speichern und dann beide Dateien wieder schließen?
Das ganze müsste für TXT Dateien funktionieren.

Das ganze soll dann immer beim Maschinenstart vor dem Userlogin Laufen.


Vielen Dank schon mal für eure Hilfe
Kommentar vom Moderator Biber am 30.11.2009 um 14:50:31 Uhr
Wenn der Titel "Datei via Bacht leeren, nicht Löschen" nicht bald geändert wird, dann geht der Beitrag den Bacht runter...

Content-ID: 130511

Url: https://administrator.de/contentid/130511

Ausgedruckt am: 15.11.2024 um 21:11 Uhr

Tommy70
Tommy70 30.11.2009 um 08:50:10 Uhr
Goto Top
Hallo,

die Größe sollte sich so überprüfen lassen

 for /f %%i in ("C:\test.txt") do if %%~zi GTR 1048576 echo Datei ist größer 1024KB   

und sollte die die Datei dann größer sein als gewollt kannst du ja einfach die Datei umbenennen und die ursprüngliche Datei neu erstellen.
Oder willst du deb Inhalt der ersten Datei in der Zweiten anhängen?
Scanner
Scanner 30.11.2009 um 09:06:34 Uhr
Goto Top
Das Problem ist,
das ich die Datei nicht neu erstellen darf, sondern nur den Inhalt herrausnehmen darf, sie schliessen und dann den
Inhalt der ersten Datei in eine Bachupdatei Speichern kann.
Biber
Biber 30.11.2009 um 09:25:09 Uhr
Goto Top
Moin Scanner,

Zitat von @Scanner:
Das Problem ist,
das ich die Datei nicht neu erstellen darf, sondern nur den Inhalt
herrausnehmen darf, sie schliessen und dann den
Inhalt der ersten Datei in eine Bachupdatei Speichern kann.
Ich finde, du hast dein Problem doch schon sehr gut erkannt.
Ist der erste Schritt zur Lösung.
Dann arbeite daran, diesen unsäglichen Zustand, "dass ich die Datei nicht neu erstellen darf" zu ändern.

Wenn du nicht in der Lage bist, diese *.log oder-was-auch-immer-Datei unter Namen mit Tagesdatum oder rotating counter schreiben zu lassen, dann schalte den Admin mit ein.

Der von dir skizzierte Workaround jedenfalls sollte nicht in einem real life-Szenario parallel zu Unternehmensprozessen etabliert werden.

Es sind schon Abmahnungen aus geringeren Anlässen ausgesprochen worden.

Grüße
Biber
pxxsxx
pxxsxx 30.11.2009 um 09:57:06 Uhr
Goto Top
Hallo,

So sollte es dann funktionieren:

@echo off
for /f %%i in ("C:\test.txt") do if %%~zi LSS 1048576 Goto eof  
copy c:\test.txt c:\sicherung\%date%.txt
echo. > c:\test.txt
:eof

echo. > c:\test.txt überschreibt den Inhalt der Datei c:\test.txt mit einer Leerzeile.

Gruß
Peter
Scanner
Scanner 30.11.2009 um 10:36:50 Uhr
Goto Top
An dem nicht neu erstellen kann ich bzw. wir hier nichts Ändern.
Ist Softwarehersteller Vorgabe.
Es kann dann zu Fehlern kommen und die korrekte Funktionsweise ist dann nicht mehr gewährleistet.
Ist etwas kompli, kann ich hier nicht bis auf detail erklären. ich halte das auch für Bull**

Ich bin der Admin und habe den Auftrag dazu bekommen. face-wink

Also keine Panik wegen Rechtlichen Dingen face-wink

aber gut das du es gesagt hast, ist für die mitleser wichtig.
Scanner
Scanner 30.11.2009 um 10:41:12 Uhr
Goto Top
Auf die Idee war ich auch schon mal gekommen.
Aber, bekommt die Datei dann nicht eine neue ID bzw. ein neues Erstellt am Datum usw. ?
Denn genau das muss ich vermeiden.
Denn die Datei darf nur geleert nicht in irgend einer Weise neu erstellt werden.
Kann ich nicht irgendwie den Inhalt auslesen und dann einen leeren String zurück schreiben ?
und die Datei dann mit 0 KB neu Speichern ?
pxxsxx
pxxsxx 30.11.2009 um 12:03:34 Uhr
Goto Top
Hallo,
bei einer Ausgabeumleitung in eine bestehende Datei, bleibt das Erstelldatum erhalten. Das Änderungsdatum wird natürlich aktualisiert.

Probiers halt einfach mal mit ner Testdatei...

Gruß
Peter
bastla
bastla 30.11.2009 um 12:55:57 Uhr
Goto Top
Hallo @ All!
bei einer Ausgabeumleitung in eine bestehende Datei, bleibt das Erstelldatum erhalten. Das Änderungsdatum wird natürlich aktualisiert.
Gilt auch für
copy nul C:\test.txt>nul
wobei sich damit auch eine 0 Byte große Datei erstellen lässt ...

Grüße
bastla
TsukiSan
TsukiSan 30.11.2009 um 14:35:41 Uhr
Goto Top
@Scanner,

du hast das schon richtig erkannt!
An dem nicht neu erstellen kann ich bzw. wir hier nichts Ändern.
Ist Softwarehersteller Vorgabe.
Es kann dann zu Fehlern kommen und die korrekte Funktionsweise ist dann nicht mehr gewährleistet.
Ist etwas kompli, kann ich hier nicht bis auf detail erklären. ich halte das auch für Bull**

diesen Softwarehersteller würde ich mal fragen, seit wann die Maschine dem Menschen sagt, was er zu tun hat.
Sorry, aber das wollte ich loswerden.

Ich denke, dass bastlas Tipp dir hilft.

Gruss
Tsuki
Scanner
Scanner 01.12.2009 um 11:23:09 Uhr
Goto Top
Zitat von @bastla:

copy nul C:\test.txt>nul
> 


Danke das war genau das was mir nicht mehr eingefallen ist face-smile
Das war die Lösung face-smile