PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Batch] url filtern


zerobit
08.05.2011, 19:08
hoi, ich versuche gerade ein URL-filter zu basteln.
in der jetzigen form müsste man ihn für jede webseite anpassen.

was ich bräuchte ist, das eine URL mit dynamischer länge/unter-verzeichnisse umgehen kann.
ich brauche eigendlich nur den letzten teil der URL, welche den dateinamen beinhaltet.

es sollte "relativ einfach" sein, da die URL bis zum letzten "/" gelöscht werden soll.
aber wie ich windows-eingabeaufforderung kenne gibt es sicherlich fallstricke... :P


@echo off
set "xIN=rtmp://fms.edge.newmedia.nacamar.net/alsterfilm/unknown/fernsehkritik68.flv"

for /f "tokens=1,2,3* delims=/" %%a in ("%xIN%") do (echo.for: && echo. a: %%a && echo. b: %%b && echo. c: %%c && echo. d: %%d)
echo.set: %xIn%

ping 127.0.0.0 -n 6 >nul
::pause


zerobit
20.05.2011, 18:46
echt keiner ne idee???

josch
26.05.2011, 09:42
du könntest dir eine kleine scriptsprache schnappen und es darin lösen

zerobit
19.06.2011, 13:23
du könntest dir eine kleine scriptsprache schnappen und es darin lösen

nennt mich ein steinzeitmensch, aber ich will es gern in Batch lösen.
vielleicht sollte ich die frage erstmal allgemeiner stellen:

Wie kann ich in Batch eine Zeichenkette zerteiln?
Warscheinlich mit FOR.

German
29.06.2011, 01:17
Die stinknormale FOR Schleife teilt einen String an Leerzeichen und Tabs in Token, und arbeitet diese seriell ab. Ergo musst du nichts weiter tun, als die Slashes durch Spaces ersetzen ... das letzte Token bleibt in der Variable ;)
@echo off
set "xIN=rtmp://fms.edge.newmedia.nacamar.net/alsterfilm/unknown/fernsehkritik68.flv"

for %%a in (%xIN:/= %) do (
echo %%a
set "filename=%%a"
)

echo(
echo File Name: %filename%
pause

zerobit
21.08.2011, 13:41
entschultigung für die noch spätere antwort meinerseits :D

super genau das habe ich gebraucht
vielen dank.

German
26.08.2011, 14:36
Noch einfacher:

@echo off
set "xIN=rtmp://fms.edge.newmedia.nacamar.net/alsterfilm/unknown/fernsehkritik68.flv"

for /f "delims=" %%a in ("%xIN%") do set "filename=%%~nxa"

echo %filename%
pause


Ich war mir anfänglich unsicher, ob auch URLs auf diese Weise zu verarbeiten sind. Zumindest auf meinem Win7 funktioniert das so.

zerobit
27.08.2011, 17:38
danke auch für methode 2
ich hab beide aufgeschieben, falles es auf älteren systemen zu problemen kommt :D