thomas1972
Goto Top

Per Batch Dateinamen auslesen, Inhaltlich in HTML Datei Wert verändern

Hallo,

ich habe ein Problem,
bekomme in einem Verzeichnis täglich X html Dateien abgelegt.
Wie kann ich am schnellsten per Batch inhaltlich im HTML Text selber eine Passage aus dem Dateinamen ersetzen lassen

z.b. Datei heisst 124578-7841.html
möchte ich in dieser Datei den Wert <TITLE>READ BY</TITLE>
ersetzen lassen durch <TITLE>124578-7841</TITLE>

Dieses soll für alle Dateien in dem Verzeichnis geschehen..

Grüße aus München

Content-ID: 276548

Url: https://administrator.de/forum/per-batch-dateinamen-auslesen-inhaltlich-in-html-datei-wert-veraendern-276548.html

Ausgedruckt am: 23.12.2024 um 01:12 Uhr

114757
114757 06.07.2015 um 10:00:27 Uhr
Goto Top
Moin,
mit Powershell z.B. so
gci 'c:\Ordner\*.html' | %{(gc $_.Fullname) -replace '(<TITLE>)(.*?)(</TITLE>)',('$1' + $_.Basename + '$2') | out-file $_.Fullname}  
Gruß jodel32
TlBERlUS
TlBERlUS 06.07.2015 aktualisiert um 10:00:49 Uhr
Goto Top
Hi,

wenns mit Powershell sein darf, sollte das hier klappen:
<code/>
$file = Get-ChildItem C:\test | select -ExpandProperty Name
foreach($f in $file){
(gc C:\test\$f).Replace("1","test")| Set-Content C:\test\$f
}


Grüße,

Tiberius
thomas1972
thomas1972 06.07.2015 um 10:06:34 Uhr
Goto Top
Guten Morgen,

danke für die Rückmeldung,

leider kann/darf ich kein Powershell ausführen ( Restrict User)
Gibt es noch andere Möglichkeit mit z.b. "BAT " Datei??
TlBERlUS
TlBERlUS 06.07.2015 um 10:10:14 Uhr
Goto Top
Du darfst cmd/bat ausführen, aber keine Powershell?
thomas1972
thomas1972 06.07.2015 um 10:15:36 Uhr
Goto Top
Leider ja / kann darf keine Scripte in Powershell ausführen.. psm1 Datein werden abgebrochen, da das ausführen von Scripten unterbunden wird..
AnkhMorpork
AnkhMorpork 06.07.2015 aktualisiert um 11:00:48 Uhr
Goto Top
Zitat von @TlBERlUS:

Du darfst cmd/bat ausführen, aber keine Powershell?

Wenn er eingeschränkter User ist, kann er keine PS-Skripts ausführen.
Er müsste zumindest einmal die PS mit elevated rights starten um die Execution-Policy zu setzen ... es sei denn, der Admin erledigt das.

<EDIT> Kann man auch umgehen, ist dann aber deutlich weniger komfortabel.
TlBERlUS
TlBERlUS 06.07.2015 um 10:25:24 Uhr
Goto Top
Zitat von @thomas1972:

Leider ja / kann darf keine Scripte in Powershell ausführen.. psm1 Datein werden abgebrochen, da das ausführen von
Scripten unterbunden wird..

Du könntest das Skript stattdessen in die Powershell-Konsole eingeben (windows-Suche nach "powershell")
thomas1972
thomas1972 06.07.2015 um 10:51:54 Uhr
Goto Top
Auch in der Konsole lässt dieser mir dieses nicht ausführen.
Besteht keine alternative zu Powershell..?..
TlBERlUS
TlBERlUS 06.07.2015 um 11:39:10 Uhr
Goto Top
Zitat von @thomas1972:

Auch in der Konsole lässt dieser mir dieses nicht ausführen.

Gibt er eine Fehlermeldung aus?
Ansonsten teste mal
Write-host "hello world"  

Wenn das funktioniert, solltest du prüfen, ob du schreib-Berechtigungen auf den Pfad hast.
rubberman
rubberman 06.07.2015 um 19:27:55 Uhr
Goto Top
Hallo thomas1972.

Wie kann ich am schnellsten per Batch inhaltlich im HTML Text selber eine Passage aus dem Dateinamen ersetzen lassen
Grundsätzlich gar nicht. Gründe sind,
  • dass es völlig legal wäre wenn <TITLE>...</TITLE> nicht allein in einer Zeile stünde, Batch aber Dateien mehr oder weniger nur zeilenweise verarbeiten kann.
  • dass Zeilen in einem HTML Text in ihrer Länge nicht begrenzt sind, die Stringlänge in Batch aber auf 8191 Zeichen (incl. Code) limitiert ist
  • dass der HTML Text vermutlich in einem anderen Zeichensatz vorliegt, als ihn Batch verarbeitet.

Darf es auch eine andere Sprache (VBScript) sein?

Grüße
rubberman