Teil eines Strings löschen
Hallo zusammen,
ich komme gerade bei folgendem Punkt nicht weiter:
Ich habe eine Datei die völlig unformatiert ist, das bedeutet es steht alles in einer Zeile:
<Url>Das/ist/meine/Url</Url><!--Comment <Url2>Das/ist/meine/Url2</Url2> Comment-->
Ich möchte jetzt mit Hilfe eines Batch-Scriptes Url2 wieder einkommentieren, das bedeutet
"<!--Comment" und "Comment-->" sollen gelöscht werden.
Ist das Möglich?
Gruß
ich komme gerade bei folgendem Punkt nicht weiter:
Ich habe eine Datei die völlig unformatiert ist, das bedeutet es steht alles in einer Zeile:
<Url>Das/ist/meine/Url</Url><!--Comment <Url2>Das/ist/meine/Url2</Url2> Comment-->
Ich möchte jetzt mit Hilfe eines Batch-Scriptes Url2 wieder einkommentieren, das bedeutet
"<!--Comment" und "Comment-->" sollen gelöscht werden.
Ist das Möglich?
Gruß
Please also mark the comments that contributed to the solution of the article
Content-Key: 283898
Url: https://administrator.de/contentid/283898
Printed on: April 19, 2024 at 06:04 o'clock
18 Comments
Latest comment
In der Unix-Welt gibt es einen "sed", einen Windows-Port findet man offenbar hier: http://gnuwin32.sourceforge.net/packages/sed.htm
Man könnte z.B. die Zeichenketten "<!--Comment " und " Comment-->" (inklusive der Leerzeichen dahinter bzw. davor) durch "nichts" ersetzen
Man könnte z.B. die Zeichenketten "<!--Comment " und " Comment-->" (inklusive der Leerzeichen dahinter bzw. davor) durch "nichts" ersetzen
Ich sehe gerade, es geht noch einfacher:
der Befehl
ersetzt in der Datei beispiel.txt alle xyz durch abc und schreibt das auf die (umleitbare) Standard-Ausgabe.
Du müsstest also nur sed installieren, den Ordner zur Binärdatei (C:\Program Files (x86)\GnuWin32\bin) in den Suchpfad aufnehmen und kannst dann direkt aus der Quelldatei lesen und in eine Zieldatei umleiten.
der Befehl
sed s/xyz/abc/g beispiel.txt
ersetzt in der Datei beispiel.txt alle xyz durch abc und schreibt das auf die (umleitbare) Standard-Ausgabe.
Du müsstest also nur sed installieren, den Ordner zur Binärdatei (C:\Program Files (x86)\GnuWin32\bin) in den Suchpfad aufnehmen und kannst dann direkt aus der Quelldatei lesen und in eine Zieldatei umleiten.
Eine XML durch Batch jagen, wuahhhhh da kriegt man ja Gänsehaut bei den ganzen Batch-Sonderzeichen
Achtung im ersten Element wird mit Regular Expressions gearbeitet ! Spezielle Sonderzeichen sind mit Backslash zu escapen.
SED for Windows, download hier einfach nur die sed.exe aus dem BIN-Verzeichnis nehmen, fertig.
Gruß grexit
sed -r 's/<!--Comment|Comment-->//gi' datei.txt
SED for Windows, download hier einfach nur die sed.exe aus dem BIN-Verzeichnis nehmen, fertig.
Gruß grexit
Hey,
in Batch sind verschiedene Zeichenkettenmanipulationen möglich, u.a. die Kürzung am Anfang (siehe set /?). Zu beachten ist, dass die maximale Zeichenkettenlänge nicht überschritten wird. Außerdem kann Batch nicht mit Zweibytecodes (UTF-8 usw.) arbeiten. Sed übrigens auch nicht.
Gruß, Endoro
in Batch sind verschiedene Zeichenkettenmanipulationen möglich, u.a. die Kürzung am Anfang (siehe set /?). Zu beachten ist, dass die maximale Zeichenkettenlänge nicht überschritten wird. Außerdem kann Batch nicht mit Zweibytecodes (UTF-8 usw.) arbeiten. Sed übrigens auch nicht.
Gruß, Endoro
Außerdem kann Batch nicht mit Zweibytecodes (UTF-8 usw.) arbeiten. Sed übrigens auch nicht.
SED kann das schon nur muss man den Befehl dann in ein UTF-8 encodiertes Script packen oder die Shell auf UTF-8 umstellen (Linux) und ausführen dann geht das schon.Aber ich shätze mal der TO ist da hinsichtlich anderer Tools und Erweiterung Beratungsresistent, so wie seine letzten Threads aussehen.
Unter Windows würde ich dafür immer Powershell vorziehen, das hat mit dem Encoding etc. keine solchen Probleme.
Gruß grexit
Ja, genau das hatte ich ja bereits geschrieben?!?
Wobei: Ich meine gelesen zu haben, dass man < und > beim Windows-Port in Tüddelchen packen muss und die von mir aufgezeigte Syntax zum Aufruf ist tatsächlich korrekt.
Ich hatte das Ding nämlich probeweise installiert und bei der Gelegenheit mal ein paar hundert Kommentarzeilen aus einer Batch geschnippelt
Wobei: Ich meine gelesen zu haben, dass man < und > beim Windows-Port in Tüddelchen packen muss und die von mir aufgezeigte Syntax zum Aufruf ist tatsächlich korrekt.
Ich hatte das Ding nämlich probeweise installiert und bei der Gelegenheit mal ein paar hundert Kommentarzeilen aus einer Batch geschnippelt
Zitat von @117471:
Ja, genau das hatte ich ja bereits geschrieben?!?
Jup , aber nicht erwähnt das hier das erste Element als Regular Expression String interpretiert wird. Für einen Anfänger wie der TO es zu sein scheint nicht ganz unwichtig., sonst wundert er sich wenn er mal einen Punkt ersetzen möchte warum plötzlich alle Zeichen ersetzt werden Ja, genau das hatte ich ja bereits geschrieben?!?
Gruß und schönes Wochenende
Zitat von @Dani:
Sehe ich genauso. Ist Powershell keine Option? Laienhaft gesagt ist Powershell Batch 2.0. ^^
Sehe ich genauso. Ist Powershell keine Option? Laienhaft gesagt ist Powershell Batch 2.0. ^^
Das ist tatsächlich eine interessante Frage. Ich tüddel' seit MS-DOS 3.2 mit Batch-Dateien herum und mache immer noch alles "per Batch". Mein aktueller HiScore von dieser Woche war ein knapp 500 Zeilen langes Backup-Script und mit der PowerShell wäre das natürlich 1000 Mal einfacher gewesen.
Ich denke, es liegt daran, dass sich die PowerShell (noch) nicht so nachhaltig anfühlt wie Batch-Dateien. Bei denen hat man irgendwie immer das Gefühl, dass es die noch in 30 Jahren geben wird...
Mein Tipp vom 26. 09:56 Uhr hat nicht geklappt? Ich bin mir ziemlich sicher, dass das genau so in der Anleitung stand...
Das kannst Du selber machen: "Frage als gelöst markieren" und "Zur Lösung beigetragen" anklicken.