Batch wenn X Zeilen in TXT dann exit/b?

1 Antwort

Du hast ein tolles Talent die klar auszudrĂŒcken...đŸ€„ Dann musst Du Dich nicht wundern das Du förmlich mit Antworten ĂŒberflutet wirst. (Was glaubst Du weshalb ich mich bisher mit Hilfestellungen zurĂŒckhielt?)

Entschuldige den schroffen Ton, aber Deine unklare Ausdrucksweise lĂ€sst zu viel Spielraum fĂŒr verschiedene Auslegungen... (Es macht wahrlich keien Spaß dir zig Codebeispiele zu liefern, von denen vielleicht eines trifft...đŸ˜€đŸ€ź)

Du wĂŒnscht Dir richtige Tipps? dann Liefere auch prĂ€zise Fragen möglichst mit Codebeispielen ,welche von Helfern kommentiert und ggf korrigiert werden.

Das kannst Du auch gleich als Übung betrachten. Nur wer ein Problem auf den Punkt beschreiben kann, kann es auch selbst lösen...

wir sind keine Codeschnipselfabrik...

einfach mitzÀhlen, wenn du in die Datei schreibst.

@echo off
chcp 65001 >nul
setlocal enableDelayedExpansion


  rem  demo: einfach Anzahl  an Strings an Eco  ĂŒbergeben, weches  diese  in eine Datei schreibt
for %%a in ("irgendwas","was Anderes","sonstwas","Rumpelheinzchen Grossmutter","Elfriedes Ziege") do (
    echo ein Text >>"blubb.txt"
      rem mitzĂ€hlen...
    set /s "Zeilen+=1"
      rem wenn Limit schleife  verlassen...
    if !Zeilen! equ 3 goto :break
)
:break
echo Ich habe nach der %Zeilen%. Zeile aufgehört in die Datei zu schreiben.
pause

oder wenn die zu schreibenden Daten aus Verschiedenen unabhÀngigen Quellen kommen definiere eine eigenen Schreibbefehl welcher mitzÀhlt.

@echo off
chcp 65001 >nul
setlocal enableDelayedExpansion
set "currentLines=0"
  rem Ausgabedatei "resetten"
call >"blubb.txt"

call :WriteMyFile "irgendwas"
call :WriteMyFile "was Anderes"
  rem du kannst auch anhand des Fehlerstatus von exit /b (0 oder >0)weitere  Entscheidungen treffen:
call :WriteMyFile "sonstwas" &&(echo  alles Normal)||(echo abgelehnt)
for %%a in ("Rumpelheinzchen Grossmutter","Elfriedes Ziege", "SchnÀtteredÀng") do (
    call :WriteMyFile "%%~a"
)
call :WriteMyFile "sonstwas" &&(echo  alles Normal)||(echo abgelehnt)

pause
exit /b
::: Subroutines :::
:WriteMyFile
  rem erhöhe AufrufzĂ€hler
set /a "currentLines+=1"
  rem ich habe keine Lust 185 Zeilen Spagetticode abzuarbeiten (darum  4)
if %currentLines% gtr 4  goto :machWasAndres
echo %~1 >>"blubb.txt"
echo %currentLines% geschrieben
exit /b 0
:machWasAndres
   echo  ich schreib  nich mehr in die  Datei
exit /b 1

Du kannst natĂŒrlich auch ĂŒber mehrere Batchstarts akkumulierte Zeilen vor dem schreiben prĂŒfen

@echo off
chcp 65001 >nul
setlocal enableDelayedExpansion
set "limit=10"
  rem ermittle Zeilenzahl einer Datei (finde  nicht nichts ...batchlogik)
for /f "skip=1 tokens=1 delims=[]" %%a in ('find /v /n "" "blubb.txt"') do (set /a "writtenLinesInFile=%%a")
echo %writtenLinesInFile% beschriebene Zeilen  in der Datei
if %writtenLinesInFile% lss %limit% (
    echo schreibe 1 Zeile in Datei
    echo irgendwas %date% %time% >>"blubb.txt"
    set /a "__dummy=limit-%writtenLinesInFile%-1"
    echo !__dummy! Zeilen können  noch geschrieben  werden
) else (
  echo das Maß ist voll
)
pause

bezĂŒglich https://www.gutefrage.net/frage/mit-batch-1-zeile-aus-txt-loeschen ahne ich schon was Du willst, aber ich habe 0 Bock dier da zig Codebeispiele zu liefern poste was Du hast, , was das erwartete Ziel sein soll und ich schau mal was VerbesserungswĂŒrdig ist.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren