pieh-ejdsch
Goto Top

Schleife ohne mehrmaliges Öffnen der Datei in welche Umgeleiteitet wird

Schleifen öffnen oft unnütz eine Datei in welche eine Umleitung erfolgt - viele male hintereinander warum eigentlich?

Hi,

ich habe mir doch mal ein paar Gedanken zu einer Schleife gemacht, welche immerfort eine AusgabeUmleitung in eine Datei vollzieht und dabei aber auch diese Datei stets, solange etwas neues einzutragen ist, ... läuft es so ab:
  • die Datei wird geöffnet
  • die Zeile wird eingetragen
  • die Datei wird wieder geschlossen

das sind ja auch immens viele Schreibzugriffe, wenn man bedenkt das eine abzuarbeitende Datei in der Forschleife schon fast ähnlich funktioniert
  • die Datei wird geöffnet
  • die Zeile wird ausgelesen
  • die Datei wird wieder geschlossen

nun kann man zumindest die Schreibzugriffe in die Umzuleitende Datei veringern

Dir /b /s > Verzeichnisdatei.txt
soeine Zeile kennt sicherlich jeder - die Ausgabe vom DIR wird in die "Verzeichnisdatei.txt" eingetragen und zwar in einem Rutsch

dennoch schreiben wir solche For-Schleifen als Beispiel jede zweite Zeile einer Datei in eine neue
for /f "delims=" %i in (BeispielDatei.txt) do if defined X (@echo %i>>neueDatei.txt&set "X=") else set "X=1"
durch das stetige öffnen;reinschreiben sowie schliessen der "neueDatei.txt" dauert die Abarbeitung der Schleife schon lang

um nun das mehrmalige öffnen zu verhindern wird die Zeile folgendermassen geschrieben
(for /f "delims=" %i in (BeispielDatei.txt) do if defined X (@echo %i&set "X=") else set "X=1")>neueDatei.txt

die For-Schleife wird abgearbeitet und das Ergebnis kommt in die Umzuleitende Datei - und das in einem Rutsch

das ganze funktioniert natürlich auch mit Umleitung jeden Errors innerhalb der Forschleife

Der Vorteil liegt auf der Hand bei viel in die Umzuleitetende Datei hereinzuschreibenden spart es sehr viel Zeit

das ganze lässt sich auch innerhalb einer beliebigen Klammer im Batch vollziehen
(echo 1
echo 2
echo 3
)>Output.txt


Gruß Phil

Content-Key: 149286

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

Printed on: April 19, 2024 at 20:04 o'clock