rafii6311
Goto Top

Mit dir aufgelistete Ordner in html schreiben mit Spoiler Script dazwichen wegen zugrosser Menge

Brauche dringend Hilfe bei folgendem Problem:

Ich sitze jetzt seit mehreren Tagen vor folgendem Problem:
auf meinem ueber meinen Pc gehosteten webspace hab ich Animes Freigegeben,
jetzt habe ich mir eine batch Datei dazu geschrieben, die mir alle diese Dateien (meist avi, mp4) in eine index.html eintraegt.
Klappt auch alles gut, also extern erreichbar.

Nur ich habe jetzt eine riiese html mit +1000 Eintraegen!

Die Ordnerstruktur ist folgende:
[Allgemein Verzeichnis des Webspace] -> Animes -> [ganz viele Unterordner mit je ~24 Dateien gleichen types]

Ist es irgendwie moeglich die Dateien so aufzulisten, dass nach jedem Buchstaben eine Pause kommt, wo man sozusagen
ein "Spoiler"-Script dazwichen tun kann? Html behersche ich, das sollte also kein Problem sein, nur der Weg dahin.


zum Inhalt meiner Seite:
Ich bin mir im klaren darueber, dass der Inhalt meiner Seite und die darauf angebotenen Animes
nicht lizensiert sind, und somit auch legal. Also bitte keine Kommentare a la "nicht legal un so"


Mein bisheriges, funktionierendes script sieht so aus:

rem <--------------- START -------------->

@Echo off
setlocal enabledelayedexpansion
cls
echo .....
set destination=animes_old.html
set filetype=*.avi *.mp4 *.flv
set root=E:\
set webroot=http://hentairulez.dyndns.org/

dir /S /b %filetype%>temp.cache_1
cls
echo ...........

for /F "delims=" %%a in (temp.cache_1) do (  
set text=%%a
set text=!text:%root%=%webroot%!
echo !text!>>temp.cache_2
)
cls
echo ...............
for /F "delims=" %%a in (temp.cache_2) do (  
set text=%%a
set text=!text:\=/!
echo !text!>>temp.cache_3
cls
echo .....................
)
for /F "delims=" %%a in (temp.cache_3) do (  
set text=%%a
set text=!text:_=_!
echo ^<a href="!text!"^>!text!^</a^>^<br^> >>%destination%  
)
cls
echo ............................
del temp.cache_1
del temp.cache_2
del temp.cache_3
cls
echo .....................................
@Echo off
setlocal enabledelayedexpansion
set input=animes_old.html
set destination=animes.html
set webroot=http://hentairulez.dyndns.org/
cls
echo .........................................
if exist %destination% del %destination%
cls
echo ...........................................
for /F "delims=" %%a in (%input%) do (  
set text=%%a
set text=!text:^>%webroot%Animes/=^>!
echo !text!>>%destination%
)
cls
echo ...............................................
if exist %input% del %input%

rem <----------------ENDE---------------->

Content-Key: 169460

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

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

Member: Arano
Arano Jul 11, 2011 at 08:24:51 (UTC)
Goto Top
Moin moin,

Vielleicht hilft dir dieses hier ja weiter !
Es ist zwar ein Beitrag aus dem PHP-Bereich, aber die Technik ist ja das interessante.
SQL Datenbank nur bestimmte Datensätze ausgeben

In deinem Fall müsstest du dafür "nur" immer den ersten Buchstaben anstelle des ganzen Wertes verwenden.


~Arano
Member: rafii6311
rafii6311 Jul 11, 2011 at 11:41:51 (UTC)
Goto Top
Hab auf meinem Server kein php laufen.
Habs anders geloest.
Fuer jeden Anfangsbuchstaben eine eigene Liste erstellt, mit


 
dir Animes/a*.avi >a.txt
dir Animes/b*.avi >b.txt
dir Animes/c*.avi >c.txt
ect...


trotzdem danke!
Member: Arano
Arano Jul 11, 2011 at 15:23:26 (UTC)
Goto Top
War ja schon klar das es nicht um PHP geht !

Aber ähnlich wie in dem PHP-Script hättest du auch vorgehen können !
Das heisst, beim abarbeiten der Dateien sich den ersten Buchstaben extrahieren und mit dem vorherigem vergleichen.
Entweder ist es der gleiche Buchstabe und dann muss nur der Name ausgegeben werden, oder es ist ein anderer und es muss z.B. eine Überschrift und der Name ausgegeben werden.

Habe nur auf diesen Beitrag verlinkt, weil ich
  1. keine Lust hatte es erneut zu erzählen und
  2. ich mich mit BATCH nicht sonderlich auskenne und auch kein Windows zu Hand habe.

Sag einmal, die ganzen "set text=..." kannst du die nicht in eine einzige FOR-Schleife stecken, dann würde das doch bestimmt wesentlich schneller durch laufen oder !?


~Arano

PS. Die ganzen HTML-Dokumente die in die iFrames eingebunden werden benötigen noch einige HTML-Tags face-wink
Member: rafii6311
rafii6311 Jul 11, 2011 at 18:04:20 (UTC)
Goto Top
das hab ich versucht.
@Echo off

setlocal enabledelayedexpansion
set number=1
set letter=a
:anfang
if %number%==1 set letter=a
if %number%==2 set letter=b
if %number%==3 set letter=c
if %number%==4 set letter=d
if %number%==5 set letter=e
if %number%==6 set letter=f
if %number%==7 set letter=g
if %number%==8 set letter=h
if %number%==9 set letter=i
if %number%==10 set letter=j
if %number%==11 set letter=k
if %number%==12 set letter=l
if %number%==13 set letter=m
if %number%==14 set letter=n
if %number%==15 set letter=o
if %number%==16 set letter=p
if %number%==17 set letter=q
if %number%==18 set letter=r
if %number%==19 set letter=s
if %number%==20 set letter=t
if %number%==21 set letter=u
if %number%==22 set letter=v
if %number%==23 set letter=w
if %number%==24 set letter=x
if %number%==25 set letter=y
if %number%==26 set letter=z
set destination=animehtml/animes_%letter%.html
set root=E:\
set webroot=http://hentairulez.dyndns.org/
if exist %destinaton% del %destination%
dir /S /B %letter%*.mkv >animes.cache_1
for /F "delims=" %%a in (animes.cache_1) do (  
set text=%%a
set text=!text:%root%=%webroot%!
echo !text!>>animes.cache_2
)
if exist animes.cache_2 goto next
goto skipped
:next
for /F "delims=" %%a in (animes.cache_2) do (  
set text=%%a
set text=!text:\=/!
echo !text!>>animes.cache_3
)
for /F "delims=" %%a in (animes.cache_3) do (  
set text=%%a
set text=!text:_=_!
echo ^<a href="!text!"^>!text!^</a^>^<br^> >>animes.cache_4  
)
for /F "delims=" %%a in (animes.cache_4) do (  
set text=%%a
set text=!text:^>%webroot%Anime/=^>!
echo !text! >>%destination%
)

del animes.cache_1
del animes.cache_2
del animes.cache_3
del animes.cache_4
echo wrote animes_%letter%.html
goto add
:skipped
del animes.cache_1
echo animes_%letter%.html skipped!
:add
set /a number=number+1

if %number%==27 goto end
goto anfang
pause

:end
echo end!
pause

nur dabei kamen immer irgendwelche Fehler dazu. Obwohl das Programm ansich richtig laeuft.
Vll zu grosse datenmenge.
Jetzt hab ich fuer jeden Buchstaben eine Batch:
@Echo off
setlocal enabledelayedexpansion
dir /S /b a*.mp4 a*.avi a*.mkv a*.flv >animes.txt

if exist animes2.txt del animes2.txt
if exist animes3.txt del animes3.txt
if exist animes4.txt del animes4.txt
if exist animes5.txt del animes5.txt


set root=E:\
set webroot=http://hentairulez.dyndns.org/

for /F "delims=" %%a in (animes.txt) do (  
set text=%%a
set text=!text:%root%=%webroot%!
echo !text!>>animes2.txt
)

for /F "delims=" %%a in (animes2.txt) do (  
set text=%%a
set text=!text:\=/!
echo !text!>>animes3.txt
)

for /F "delims=" %%a in (animes3.txt) do (  
set text=%%a
set text=!text:_=_!
echo ^<a href="!text!"^>!text!^</a^>^<br^> >>animes4.txt  
)

for /F "delims=" %%a in (animes4.txt) do (  
set text=%%a
set text=!text:^>http://hentairulez.dyndns.org/Animes/=^>!
echo !text!>>animehtml/animes_a.html
)

del animes.txt
del animes2.txt
del animes3.txt
del animes4.txt