bigdaddycool

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..
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

erikro
erikro 06.06.2019 um 10:33:04 Uhr
Goto Top
Moin,

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++
}
(ungetestet, Fehler korrigiere ich deshalb gerne)


hth

Erik
139920
139920 06.06.2019 aktualisiert um 10:57:15 Uhr
Goto Top
Aus HTML Dateien in Batch Zeilen entfernen ??? face-big-smile
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%'"  
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.
BigDaddyCool
BigDaddyCool 06.06.2019 um 11:05:34 Uhr
Goto Top
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?
139920
Lösung 139920 06.06.2019 aktualisiert um 11:13:54 Uhr
Goto Top
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 ausweiten
@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}"  
Tut trotzdem weh sowas für HTML-Dateien schreiben zu müssen ... 🤮