
70102
20.09.2012
Text auslesen mit Zeichen im Ihnalt
ich bekomme Probleme mit dem Sonderzeichen >
Ich möchte per Batch eine Log-Datei auslesen.
Stellt auch kein Problem dar, bis ich an eine Zeile mit dem Inhalt:
ftp> put..... komme
wie bekomme ich diese Zeile als vollständigen Text eingelesen und weiter verarbeitet?
Befehlszeile die ich verarbeiten möchte
echo "%zeile%" >> "c:\log\test.txt"
zeile = ftp> put dateiname
gechrieben wird in die test.txt:
ftp (mehr nicht!!)
die Anführungszeichen haben nichts gebracht.
ein "ausschneiden" des Zeichens würde ich auch akzeptieren
Vielen Dank für Hilfsangebote
Ich möchte per Batch eine Log-Datei auslesen.
Stellt auch kein Problem dar, bis ich an eine Zeile mit dem Inhalt:
ftp> put..... komme
wie bekomme ich diese Zeile als vollständigen Text eingelesen und weiter verarbeitet?
Befehlszeile die ich verarbeiten möchte
echo "%zeile%" >> "c:\log\test.txt"
zeile = ftp> put dateiname
gechrieben wird in die test.txt:
ftp (mehr nicht!!)
die Anführungszeichen haben nichts gebracht.
ein "ausschneiden" des Zeichens würde ich auch akzeptieren
Vielen Dank für Hilfsangebote
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 191557
Url: https://administrator.de/forum/text-auslesen-mit-zeichen-im-ihnalt-191557.html
Ausgedruckt am: 17.05.2025 um 13:05 Uhr
3 Kommentare
Neuester Kommentar
Moin SDohle,
um Zeichen, die eine spezielle Bedeutung in der Batch/CMD-Syntax haben (Bsp: ">", "|", "&" etc) als "bedeutungslose Zeichen" zu behandeln, müssen sie mit einem Caret ("^") maskiert werden.
Beispiel/Demo am CMD-Prompt folgt.
Ich habe deine ersten paar Beitragszeilen in eine Textdatei namens d:\temp\testlog.log kopiert.
Um den Text per CMD einzulesen und wieder auszugeben müsste eine CMD-Zeile mit aktivierter "verzögerter Variablenauflösung"/DelayedExpansion laufen, deshalb zur Demo ggf mit
..eine CMD-Instanz mit dieser Einstellung starten.
In einem Batch dann (ungetestet) in etwa so:
( ...wenn du ALLE Zeilen haben wolltest, was ich nicht denke)
Grüße
Biber
um Zeichen, die eine spezielle Bedeutung in der Batch/CMD-Syntax haben (Bsp: ">", "|", "&" etc) als "bedeutungslose Zeichen" zu behandeln, müssen sie mit einem Caret ("^") maskiert werden.
Beispiel/Demo am CMD-Prompt folgt.
Ich habe deine ersten paar Beitragszeilen in eine Textdatei namens d:\temp\testlog.log kopiert.
Um den Text per CMD einzulesen und wieder auszugeben müsste eine CMD-Zeile mit aktivierter "verzögerter Variablenauflösung"/DelayedExpansion laufen, deshalb zur Demo ggf mit
CMD /V:on /k
..eine CMD-Instanz mit dieser Einstellung starten.
D:\temp>for /f "delims=" %i in (d:\temp\testlog.log) do @(set "Zeile=%i" & set "zeile=!zeile:^>=^^^>!" & echo !zeile!>con:)
ich bekomme Probleme mit dem Sonderzeichen >
Ich m÷chte per Batch eine Log-Datei auslesen.
Stellt auch kein Problem dar, bis ich an eine Zeile mit dem Inhalt:
ftp> put..... komme
wie bekomme ich diese Zeile als vollstΣndigen Text eingelesen und weiter verarbeitet?
In einem Batch dann (ungetestet) in etwa so:
@echo off & setlocal enableDelayedExpansion
for /f "delims=" %i in (d:\temp\testlog.log) do (
set "Zeile=%%i"
Set "zeile=!zeile:^>=^^^>!"
echo !zeile!>c:\log\text.txt
)
( ...wenn du ALLE Zeilen haben wolltest, was ich nicht denke)
Grüße
Biber
... oder alternativ (und sogar getestet
):
Leerzeilen bleiben allerdings auch bei dieser Variante auf der Strecke (was sich im Bedarfsfall noch vermeiden ließe) ...
Grüße
bastla
@echo off & setlocal
set "Ein=testlog.log"
set "Aus=text.txt"
del "%Aus%" 2>nul
for /f "usebackq delims=" %%i in ("%Ein%") do (
set "Zeile=%%i"
setlocal enableDelayedExpansion
echo !Zeile!
endlocal
)>>"%Aus%"
Grüße
bastla