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-Key: 276548

Url: https://administrator.de/contentid/276548

Printed on: April 25, 2024 at 15:04 o'clock

Mitglied: 114757
114757 Jul 06, 2015 at 08:00:27 (UTC)
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
Member: TlBERlUS
TlBERlUS Jul 06, 2015 updated at 08:00:49 (UTC)
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
Member: thomas1972
thomas1972 Jul 06, 2015 at 08:06:34 (UTC)
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??
Member: TlBERlUS
TlBERlUS Jul 06, 2015 at 08:10:14 (UTC)
Goto Top
Du darfst cmd/bat ausführen, aber keine Powershell?
Member: thomas1972
thomas1972 Jul 06, 2015 at 08:15:36 (UTC)
Goto Top
Leider ja / kann darf keine Scripte in Powershell ausführen.. psm1 Datein werden abgebrochen, da das ausführen von Scripten unterbunden wird..
Member: AnkhMorpork
AnkhMorpork Jul 06, 2015 updated at 09:00:48 (UTC)
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.
Member: TlBERlUS
TlBERlUS Jul 06, 2015 at 08:25:24 (UTC)
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")
Member: thomas1972
thomas1972 Jul 06, 2015 at 08:51:54 (UTC)
Goto Top
Auch in der Konsole lässt dieser mir dieses nicht ausführen.
Besteht keine alternative zu Powershell..?..
Member: TlBERlUS
TlBERlUS Jul 06, 2015 at 09:39:10 (UTC)
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.
Member: rubberman
rubberman Jul 06, 2015 at 17:27:55 (UTC)
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