www.mikrocontroller.net

Forum: PC-Programmierung Zeile in batch-Datei an bestimmmte Stelle einfügen (WinXP -batch)


Autor: Zulu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
###########################################################

Autor: Hans-jürgen Herbert (hjherbert) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Leerzeile lässt sich mit

  echo.

erzeugen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.