Hallo, ich möchte einen String in eine vorhandene BAT-datei in eine bestimmte Zeile einfügen. Ich habe auch eine entsprechende Kode gefunden (siehe unten). Wenn ich die Batchdatei unten ausführe - wurde in Zeile 4 der Text korrekt eingefügt, aber - fehlt ab der Hälfte der Inhalt in der neuen Batchdatei - es fehlen alle leere Zeilen Ich nehme an, dass die Batch-Datei, mit der ich die original-Batch-Datei ändere, versucht den Inhalt der original-Batch-Datei zu interpretieren. Solbald in der original-Batchdatei das Zeichen "<" auftaucht erhalte ich diese Meldung: "<" ist syntaktisch an dieser Stelle nicht verarbeitbar. Wie kann ich sonst automatisch eine Zeile in eine Datei einfügen? Danke + Gruß Zulu ########################################################### @echo off & setlocal setLocal EnableDelayedExpansion set "Datei=C:\TMP\DATEI_ZU_AENDERN.BAT" set EinfZeile=4 set "NeueZeile=Zeileninhalt der neuen Zeile" set "Bak=%Datei%.bak" move "%Datei%" "%Bak%" set Z=1 for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine goto :eof :ProcessLine if %Z% neq %EinfZeile% goto :SchreibeZeile echo %NeueZeile%>>"%Datei%" :SchreibeZeile echo %Zeile%>>"%Datei%" set /a Z+=1 ###########################################################
Echo ohne Argument (Leerzeile) sollte "Echo is On" in die Ausgabe schreiben. Die Unix-Werkzeige "head" und "sed" gibt es auch für Windows move "%Datei%" "%Bak%" head -n 4 "%Bak%" >"%Datei%" echo "Neue eingezügte Zeile" >>"%Datei%" sed 1,4d "%Bak%" >>"%Datei%" Diese Unix-für Windows-Utilities kommen z.B. von der Installation WINAVR Die kopiere ich einfach in das C:\Windows Verzeichnis. - Es sollte aber auch mit http://www.cygwin.org/cygwin/ gehen.
Eine Leerzeile lässt sich mit echo. erzeugen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.