html-dateien mittels batch erstellen

Gast #6474529
Lesenswert?

Guten Abend,
ich versuche mittels einer Batch file automatisch HTML-files zu 
erzeugen, welche mir Fotos anzeigen sollen.
Da hänge ich jetzt schon länger an zwei Problemen, wo ich nicht weiter 
komme.

ferh ist im code eigentlich href, wurde mir hier aber als spam gemeldet
1
set MAINFOLDER=C:\Users\Desktop\
2
set ORDNER[0]=2015_Harz
3

4

5
@echo off
6
del index.html
7
echo ^<!DOCTYPE html^> >> index.html
8
echo ^<html lang="de"^> >> index.html
9
echo ^<head^> >> index.html
10
echo ^</head^> >> index.html
11
echo ^<body^> >> index.html
12

13

14
echo ^<h1^>BILDER^</h1^> >> index.html
15

16
for /F "tokens=2 delims==" %%s in ('set ORDNER[') do (
17
  call:myFunc %%s
18
  echo ^<a ferh="%%s.html" target="_self"^>%%s ^</a^> >> index.html
19
)
20

21
echo ^</body^> >> index.html
22
echo ^</html^> >> index.html
23

24
call:endFunc
25

26
:myFunc
27
set FOLDER=%~1
28
set FILE=%~1.html
29
del %FILE%
30
echo ^<!DOCTYPE html^> >> %FILE%
31
echo ^<html lang="de"^> >> %FILE%
32
echo ^<head^> >> %FILE%
33
echo ^</head^> >> %FILE%
34
echo ^<body^> >> %FILE%
35
echo ^<h1^>%FOLDER%^</h1^> >> %FILE%
36
for /f "delims=?" %%i in ('dir /b %MAINFOLDER%%FOLDER% ".\*.jpg"') do @echo ^<a ferh="%%~ni.jpg"^> ^<img src='%%~ni.jpg' width=30%% height=auto/^>^</a^> >> %FILE%
37
echo ^</body^> >> %FILE%
38
echo ^</html^> >> %FILE%
39
goto:eof
40

41
:endFunc

Hier habe ich zwei Probleme:
zu einem die For schleife, wo mir die bilder auflisten soll
1
for /f "delims=?" %%i in ('dir /b %MAINFOLDER%%FOLDER% ".\*.jpg"') do @echo ^<a ferh="%%~ni.jpg"^> ^<img src='%%~ni.jpg' width=30%% height=auto/^>^</a^> >> %FILE%
Habe ich kein Leerzeichen zwischen mainfolder und folder,
bekomme ich zwar eine Link, aber kein Bild. Die Fehlermeldung ist
Die Dateien unter /C:/Users/Desktop/DSC03251.jpg konnten nicht gefunden 
werden.
Es Fehlt hier also der Ordner 2015_Harz
Habe ich ein Leerzeichen Dazwischen, ist die Fehlermeldung
Die Dateien unter /C:/Users/Desktop/.jpg konnten nicht gefunden werden.
Es fehlt hier dann also der Ordner 2015_Harz, sowie der Dateiname.

Das Zweite Problem ist, dass :myFunc ganz zum schluss noch einmal 
ausgeführt wird und mir eine leere .html erzeugt.
Eigentlich springe ich mit call:endFunc doch ans ende. Da ich dort kein 
goto:eof habe, sollte doch auch nicht wieder zurückgesprungen werden.
Gast #6474595
Lesenswert?

Ja, es ist möglich mit dem Kopf durch die Wand. Bloss sind danach Wand 
UND Kopp kaputt; immerhin schmerzt die Wand nicht...

Tu DIR den Gefallen und mach DAS NICHT mit "Batch"! Es ist eines der 
ungeeignetsten Hilfsmittel.

Lade WSL zu W10 nach und mache das mindestens mit bash , noch besser 
mit Python
Dann erreichst Du mit minimalem Aufwand portable Progrämmchen welche 
sowohl unter W10 als auch auf etlichen Unixoiden BS laufen (MacOS, 
Linux, BSD, Solaris, u.v.a.)
Gast #6474608
Lesenswert?

> Es Fehlt hier also der Ordner 2015_Harz
> Habe ich ein Leerzeichen Dazwischen, ist die Fehlermeldung
> Die Dateien unter /C:/Users/Desktop/.jpg konnten nicht gefunden werden.
> Es fehlt hier dann also der Ordner 2015_Harz, sowie der Dateiname.

Vielleicht fehlen die Zugriffsrechte.

Da würde sich doch PHP anbieten. Auf meinem Rechner laufen mittlerweile 
zahlreiche PHP-Scripte, die ich mir so im Laufe der Jahre für die 
verschiedensten Anwendungsfälle geschrieben habe. Unter anderem auch ein 
Script, das aus einem Ordner mit Bildern und Beschreibungen in 
Textdateien eine HTML-Seite mit Unterseiten erzeugt.
Gast #6474619
Lesenswert?

Ich habe so etwas mal als Shell Script gemacht, sogar noch deutlich 
komplexer mit Werbe-Einblendungen und SMS Empfänger.

Aber als Batch für die cmd.exe? Würde ich mir ncht antun wollen. Da 
würde ich lieber WSL oder CygWin als Unterbau verwenden und habe dann 
all die schönen kleinen Helferlein, die ich von Unix gewohnt bin.
Gast #6474676
Lesenswert?

Die
> kleinen Helferlein
gibt es auch ohne weiteren Ballast.

Selbst fuer DOS gab es awk, sed, grep, sort, vi und div. anderes.
Ich benutze z.B. gerne ein Script, das eine Textdatei in eine
HTML-Datei mit verfolgbaren Links verwandelt.

Die Behandlung von Leerzeichen ist im uebrigen immer widerlich.
Wenn man das unbedingt braucht und will, darf man halt nicht
aufgeben.
Gast #6474737
Lesenswert?

xyz schrieb:

> Die Behandlung von Leerzeichen ist im uebrigen immer widerlich.

Jede für interaktive Anwendung designte Scriptsprache ist absolut 
widerlich. Das Problem ist i.d.R. das nötige Quoting. Das ist 
bestenfalls nur für Profis der jeweiligen Sprache durchschaubar.

Leerzeichen sind da noch ein kleineres Problem, aber allein daran 
scheitern viele gescriptete "Kunstwerke" ja schon...

Scripting is evil.

Besser richtig programmieren...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren