Sonderzeichen in Batch-Variable maskieren
Hi...
ich habe folgendes Problem. Ich möchte ein Error-Log des Microsoft Logparser mittels Batchscript schreiben.
Zuerst führe ich den Logparser aus und leite stderr in eine temporäre Datei um.
In der Datei steht folgender, beispielhafter Fehlertext:
Dieser Text soll in eine Variable umgeleitet werden:
Wenn ich nun diese Variable ausgeben will (echo %errorVar%) dann kommt folgende Fehlermeldung
Wie schaffe ich es, die Sonderzeichen "<" und ">" bzw. beliebige andere Sonderzeichen zu maskieren?
Gruß Andreas
ich habe folgendes Problem. Ich möchte ein Error-Log des Microsoft Logparser mittels Batchscript schreiben.
Zuerst führe ich den Logparser aus und leite stderr in eine temporäre Datei um.
LogParser -i:FS -o:CSV -headers:ON -oDQuotes:ON file:V:\reportingTool\SQL\logparser.sql 2> %TEMP%\errorLOGPARSER.txt
Cannot open <from-entity>: Error searching for files in folder D:\test\pfad: Das System kann den angegebenen Pfad nicht finden.
set /p errorVar=<%TEMP%\errorLOGPARSER.txt
Cannot open Error searching for files in folder D:\test\pfad: Das System kann den angegebenen Pfad nicht finden. 0<from-entity 1>:
Das System kann die angegebene Datei nicht finden.
Wie schaffe ich es, die Sonderzeichen "<" und ">" bzw. beliebige andere Sonderzeichen zu maskieren?
Gruß Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127930
Url: https://administrator.de/contentid/127930
Ausgedruckt am: 05.11.2024 um 08:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo gismo82!
Du könntest natürlich die Ausgabe unter Anführungszeichen vornehmen, also:
Für das Maskieren brauchst Du aber auch nur 2 Zeilen mehr:
Anstelle der maskierten "<" und ">" kannst Du auch Ersatzzeichen verwenden, etwa:
Grüße
bastla
Du könntest natürlich die Ausgabe unter Anführungszeichen vornehmen, also:
echo "%errorVar%"
set "errorVar=%errorVar:<=^<%"
set "errorVar=%errorVar:>=^>%"
set "errorVar=%errorVar:<=[%"
set "errorVar=%errorVar:>=]%"
bastla
Hallo!
Beitrag alt, aber für meine Frage optimal:
Was aber mache ich, wenn das Gleichheitszeichen selbst "=" Bestandteil der Variablen ist?
Denn ich will per Skript eine INI-Datei konfigurieren, und da kommt ja das "=" in jeder Zeile vor.
Also, aus:
AutoZoom=1
soll:
AutoZoom=0
werden.
Ich zitiere jetzt aus einer Antwort von Dir, lieber bastla, vom
22.07.2008, aktualisiert 18.10.2012, 17448 Aufrufe, 13 Kommentare
set "Datei=D:\test.txt"
set "Von=Datei C:\temp\"
set "Nach="
...usw...
Das hat mir schon oft weitergeholfen, vor allem dann das ...usw...
Jetzt schreibe ich also:
set "Von=AutoZoom=1"
set "Nach=AutoZoom=0"
aber da kommt nicht das Richtige raus.
Lasse ich probehalber das "=" weg, klappt es.
Sämtliche Versuche mit zusätzlichen = % " in allen möglichen Varienten schlugen fehl.
Maskieren, wie hier beschrieben?
Stell ich mir deshalb schwierig vor, weil ja das "=" derart essentiell in jeder Formulierung ist.
Wie geht das nun, eine INI per Skript konfigurieren?
Viele Grüße,
Artemis
Beitrag alt, aber für meine Frage optimal:
Was aber mache ich, wenn das Gleichheitszeichen selbst "=" Bestandteil der Variablen ist?
Denn ich will per Skript eine INI-Datei konfigurieren, und da kommt ja das "=" in jeder Zeile vor.
Also, aus:
AutoZoom=1
soll:
AutoZoom=0
werden.
Ich zitiere jetzt aus einer Antwort von Dir, lieber bastla, vom
22.07.2008, aktualisiert 18.10.2012, 17448 Aufrufe, 13 Kommentare
set "Datei=D:\test.txt"
set "Von=Datei C:\temp\"
set "Nach="
...usw...
Das hat mir schon oft weitergeholfen, vor allem dann das ...usw...
Jetzt schreibe ich also:
set "Von=AutoZoom=1"
set "Nach=AutoZoom=0"
aber da kommt nicht das Richtige raus.
Lasse ich probehalber das "=" weg, klappt es.
Sämtliche Versuche mit zusätzlichen = % " in allen möglichen Varienten schlugen fehl.
Maskieren, wie hier beschrieben?
Stell ich mir deshalb schwierig vor, weil ja das "=" derart essentiell in jeder Formulierung ist.
Wie geht das nun, eine INI per Skript konfigurieren?
Viele Grüße,
Artemis
Hallo Artemis,
würde ich (wenn überhaupt noch in Batch) allenfalls mit temporärem VBS lösen; vielleicht hilft aber auch eines der vielen Tools von Horst Schaeffer: IniFile
Grüße
bastla
würde ich (wenn überhaupt noch in Batch) allenfalls mit temporärem VBS lösen; vielleicht hilft aber auch eines der vielen Tools von Horst Schaeffer: IniFile
Grüße
bastla
Hallo bastla,
ja weiß ich, habs inzwischen mit VBS gemacht.
Sehr gut geht das auch mit change von Uwe Sieber:
https://www.uwe-sieber.de/util.html
Es hätte mich halt interessiert, wie das im Standardskript geht, einfach der Klarheit und Durchgängigkeit halber.
Übersichtlich, Sportsgeist, sowenig Meltingpot wie möglich.
Aber anscheinend war mein Gefühl richtig: Trivial ist das wohl nicht im DOS-Skript.
Grüße,
Artemis
ja weiß ich, habs inzwischen mit VBS gemacht.
Sehr gut geht das auch mit change von Uwe Sieber:
https://www.uwe-sieber.de/util.html
Es hätte mich halt interessiert, wie das im Standardskript geht, einfach der Klarheit und Durchgängigkeit halber.
Übersichtlich, Sportsgeist, sowenig Meltingpot wie möglich.
Aber anscheinend war mein Gefühl richtig: Trivial ist das wohl nicht im DOS-Skript.
Grüße,
Artemis