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.