Bearbeitung von html-Dateien per Batch
Hallo zusammen und einen Guten Morgen !
Ich habe da ein Problem und meine Batchkenntnisse sind nicht die besten. Ich hoffe, hier jemanden zu finden, der mein Problem lösen kann und bin guter Hoffnung.
Das Problem sieht wie folgt aus:
Ich habe einen Ordner, in dem unter anderem HTML-Dateien liegen. Nur diese HTML-Dateien sollen nacheinander geöffnet und dort die Zeilen 23 - 42 gelöscht werden. Anschließend soll die Datei gespeichert und die nächste bearbeitet werden.
Hört sich eigentlich einfach an, aber ist es auch so?? Zumindest würde ich mich über eure Vorschläge freuen.
Ach, vielleicht sollte ich noch dazu sagen, dass ich mich in einer Windows 10 Umgebung bewege. Kein Linux oder so..
Ich habe da ein Problem und meine Batchkenntnisse sind nicht die besten. Ich hoffe, hier jemanden zu finden, der mein Problem lösen kann und bin guter Hoffnung.
Das Problem sieht wie folgt aus:
Ich habe einen Ordner, in dem unter anderem HTML-Dateien liegen. Nur diese HTML-Dateien sollen nacheinander geöffnet und dort die Zeilen 23 - 42 gelöscht werden. Anschließend soll die Datei gespeichert und die nächste bearbeitet werden.
Hört sich eigentlich einfach an, aber ist es auch so?? Zumindest würde ich mich über eure Vorschläge freuen.
Ach, vielleicht sollte ich noch dazu sagen, dass ich mich in einer Windows 10 Umgebung bewege. Kein Linux oder so..
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 459119
Url: https://administrator.de/forum/bearbeitung-von-html-dateien-per-batch-459119.html
Ausgedruckt am: 20.05.2025 um 04:05 Uhr
4 Kommentare
Neuester Kommentar
Moin,
wenn es immer die gleichen Zeilennummern sind, dann ist das mit der Powershell ganz einfach:
(ungetestet, Fehler korrigiere ich deshalb gerne)
hth
Erik
wenn es immer die gleichen Zeilennummern sind, dann ist das mit der Powershell ganz einfach:
$file = get-content [Pfad zur html-Datei]
$i = 0
while($i -lt $file.length) {
if($i -lt 23 -or $i -gt 42) {
out-file neueshtmlfile.html -inputObject $file[$i] -append -encoding utf8
}
$i++
}
hth
Erik

Aus HTML Dateien in Batch Zeilen entfernen ??? 
Sowas macht man eigentlich nicht sondern lädt das File in einen Parser z.B. ein DomDocument-Object und entfernt die unerwünschten DOM Elemente, das fällt dir so nämlich schnell auf die Füße wenn sich die Daten nur minimal verschieben. Der HTML Quelltext muss hier dazu aber vorliegen.
Wenns trotzdem sein muss schnell in Batch mithilfe der PS
Geht natürlich auch rein mit Batch, ist mir jetzt aber die Schreibarbeit nicht wert ... findest du hier im Forum schon X Beiträge zu.
Sowas macht man eigentlich nicht sondern lädt das File in einen Parser z.B. ein DomDocument-Object und entfernt die unerwünschten DOM Elemente, das fällt dir so nämlich schnell auf die Füße wenn sich die Daten nur minimal verschieben. Der HTML Quelltext muss hier dazu aber vorliegen.
Wenns trotzdem sein muss schnell in Batch mithilfe der PS
@echo off
set "datei=C:\Datei.html"
powershell -EP ByPass -NoP -C "$text = gc '%datei.html%';($text | select -First 22) + ($text | select -Skip 42) | sc '%datei%'"

Zitat von @BigDaddyCool:
Oha, danke schon mal,
so grob verstehe ich den Code ja, aber ich vermisse den Teil, wo er die nächste html-Datei im Ordner nimmt und bearbeitet. Das waren doch bisher beispiele für eine einzelne Datei, oder?
Lässt sich leicht auf einen ganzen Ordner ausweitenOha, danke schon mal,
so grob verstehe ich den Code ja, aber ich vermisse den Teil, wo er die nächste html-Datei im Ordner nimmt und bearbeitet. Das waren doch bisher beispiele für eine einzelne Datei, oder?
@echo off
set "ordner=D:\Ordner"
powershell -EP ByPass -NoP -C "gci '%ordner%' -Filter *.html -File | %%{$text = gc $_.Fullname;($text | select -First 22) + ($text | select -Skip 42) | sc $_.Fullname}"