Per Batch wirksam prüfen ob in Textdatei aktuell geschrieben wird bzw. ob sie im Zugriff ist
Hi IT-Crowd
Hintergrund: Eine Textdatei soll per Batch von A nach B verschoben werden.
Ausgangspunkt: An die Textdatei werden sporadisch (programmgesteuert) Zeilen angefügt. Diese stellen Datensätze dar, die nur komplett verwendet werden können (logo!).
Problem: Verschiebe ich die Datei, kann es sein, dass die letzte Zeile noch nicht fertig geschrieben ist. Ich muss also prüfen, ob momentan in die Datei geschrieben wird, falls nicht, kann ich sie moven, ansonsten probier ichs später nochmal.
Ich habe es bereits per
versucht, allerdings funktioniert das nicht. Ich denke der Zeitraum, in dem die Datei wirklich zum schreiben geöffnet ist, ist nur sehr kurz, so dass es wohl ein sehr großer Zufall ist, per openfiles genau den Moment zu erwischen, dass er das richtige Ergebnis zurückgibt.
Eine andere Möglichkeit wäre es zu prüfen, ob das letzte Zeichen in der Datei ein CRLF ist. Das würde bedeuten, die letzte Zeile ist komplett und ich kann die Datei moven. Ich habe aber keine Ahnung, wie ich das am schnellsten prüfe.
Oder vielleicht noch einfacher: zählen, ob die letzte Zeile alle Felder enthält.
Hier ist noch ein Beispiel für den Aufbau der Textdatei:
<code type:"plain">10009876;21214789;Mustermann;Hans;01.05.1963;M;Wiesenweg 1;Musterstadt;98765;25.05.2012 12:40:00;ABT1CRLF
Wer hat eine Idee?
kleinerbub
Hintergrund: Eine Textdatei soll per Batch von A nach B verschoben werden.
Ausgangspunkt: An die Textdatei werden sporadisch (programmgesteuert) Zeilen angefügt. Diese stellen Datensätze dar, die nur komplett verwendet werden können (logo!).
Problem: Verschiebe ich die Datei, kann es sein, dass die letzte Zeile noch nicht fertig geschrieben ist. Ich muss also prüfen, ob momentan in die Datei geschrieben wird, falls nicht, kann ich sie moven, ansonsten probier ichs später nochmal.
Ich habe es bereits per
Eine andere Möglichkeit wäre es zu prüfen, ob das letzte Zeichen in der Datei ein CRLF ist. Das würde bedeuten, die letzte Zeile ist komplett und ich kann die Datei moven. Ich habe aber keine Ahnung, wie ich das am schnellsten prüfe.
Oder vielleicht noch einfacher: zählen, ob die letzte Zeile alle Felder enthält.
Hier ist noch ein Beispiel für den Aufbau der Textdatei:
<code type:"plain">10009876;21214789;Mustermann;Hans;01.05.1963;M;Wiesenweg 1;Musterstadt;98765;25.05.2012 12:40:00;ABT1CRLF
Wer hat eine Idee?
kleinerbub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 185489
Url: https://administrator.de/contentid/185489
Ausgedruckt am: 24.11.2024 um 18:11 Uhr
3 Kommentare
Neuester Kommentar
moin kleinerbub,
heisst das genauer die Letzte Zeile besitz erst eine ZeilenSchaltung, wenn alle Einträge in der Zeile Vorhanden sind?
dann so (es ist auch egal, ob die Datei zum Schreiben gesperrt ist)
wenn Du testen willst ob die Datei zum schreiben gesperrt ist dann so
Hier gibs auch ne Batch zum Check dafür
Batch-Abfrage, ob bestimmte excel-Datei geöffnet ist und diese dann auch schließen (können)
[Edit]da Openfiles nur mit Adminrechten läuft[/Edit]
Gruß Phil
heisst das genauer die Letzte Zeile besitz erst eine ZeilenSchaltung, wenn alle Einträge in der Zeile Vorhanden sind?
dann so (es ist auch egal, ob die Datei zum Schreiben gesperrt ist)
findstr /nv $ "Dateiname" 1>nul &&echo Zeile noch nicht Fertig ||echo Letzte Zeile ist Fertig geschrieben.
wenn Du testen willst ob die Datei zum schreiben gesperrt ist dann so
:check
(type nul 4>>Dateiname ) 2>nul && echo Datei kann verschoben werden ||Datei ist noch gesperrt &&goto :check
rem weiterer Code
Batch-Abfrage, ob bestimmte excel-Datei geöffnet ist und diese dann auch schließen (können)
[Edit]da Openfiles nur mit Adminrechten läuft[/Edit]
Gruß Phil