Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: danibus en 7 Junio 2017, 23:42 pm



Título: Bath ¿Cómo leer una imagen random de una carpeta online?
Publicado por: danibus en 7 Junio 2017, 23:42 pm
Hola a todos, necesito vuestra ayuda

Necesito mostrar una imagen random al iniciar sesión en WinXX.
Estas imágenes necesitan estar online para acceder desde distintos equipos en distintos lugares.
Las fotos he pensado en subirlas a un ftp (que tenga sftp para no mandar nada en claro).
Las imágenes estarán todas en una carpeta online, todas iguales con el formato p.e. imagen00.jpg

Con un bat quiero cargar una imagen con el navegador predeterminado (tengo que ver si puedo hacer lo mismo con el visor de imágenes).
El bat lo pongo en la carpeta RUN del usuario, de forma que al iniciar sesión lanza el bat, tampoco hace falta más.

¿Cómo leo las imágenes de la carpeta y elijo una aleatoria? Es decir, pueden haber 30 imágenes, y en otro momento haber 40.
En local he visto cosas, pero online, y desde un ftp, ni pajolera idea, todos los ejemplos que veo son descargando la carpeta entera XD





Título: Re: Bath ¿Cómo leer una imagen random de una carpeta online?
Publicado por: Eleкtro en 8 Junio 2017, 00:31 am
Con un bat quiero cargar una imagen con el navegador predeterminado (tengo que ver si puedo hacer lo mismo con el visor de imágenes).
El bat lo pongo en la carpeta RUN del usuario, de forma que al iniciar sesión lanza el bat, tampoco hace falta más.

Para abrir "X" archivo con el programa asociado por defecto, tan solo tienes que escribir el nombre del archivo (encerrándolo entre comillas dobles si contiene "e s p a c i o s") o en su defecto usar el comando Start. Lo mismo harías con una url para abrirla en el navegador por defecto. Así de sencillo es.

¿Cómo leo las imágenes de la carpeta y elijo una aleatoria? Es decir, pueden haber 30 imágenes, y en otro momento haber 40.
En local he visto cosas, pero online, y desde un ftp, ni pajolera idea, todos los ejemplos que veo son descargando la carpeta entera XD

Batch no dispone de ningún instrumental para trabajar con los protocolos HTTP / HTTPS ni tampoco FTP, para eso necesitas recurrir a un lenguaje de programación más capacitado para esa tarea, o en su defecto utilizar aplicaciones command-line como WGet. Batch ni siquiera se considera un lenguaje de programación, y es muy "manco" o limitado en comparación con cualquier otra opción disponible hoy en día...

Con Batch ni tan siquiera puedes crear un Array para seleccionar un elemento al azar. Puedes simular un Array y llevar a cabo la selección que requieres, pero el ajetreo que supone la escritura del código no te merece la pena hacerlo.

Mi consejo: hazlo en otro lenguaje de programación soportado "nativamente" por Wndows como por ejemplo Visual Basic Script, o PowerShell.

PD: Y en el foro no se hacen tareas, si tienes más preguntas entonces por favor muestra lo que hayas intentado hacer por ti mismo.

Saludos!


Título: Re: Bath ¿Cómo leer una imagen random de una carpeta online?
Publicado por: danibus en 10 Junio 2017, 12:19 pm
Gracias por contestar, al final voy a hacer algo más sencillo.
Cargaré la web con el bat y será la propia página web la que lea las fotos en el propio servidor, al fin y al cabo la web y las fotos están subidas en el mismo sitio. javascript en el html, mucho más lógico hacerlo así.

El bat al final será sencillo.

En cuanto lo tenga funcionando lo posteo aquí.


Título: Re: Bath ¿Cómo leer una imagen random de una carpeta online?
Publicado por: danibus en 3 Agosto 2017, 01:13 am
Gracias por contestar, al final voy a hacer algo más sencillo.
Cargaré la web con el bat y será la propia página web la que lea las fotos en el propio servidor, al fin y al cabo la web y las fotos están subidas en el mismo sitio. javascript en el html, mucho más lógico hacerlo así.

El bat al final será sencillo.

En cuanto lo tenga funcionando lo posteo aquí.

Me cito a mi mismo, finalmente éste es el batch

Código:
@ECHO OFF
cls

rem IP CONOCIDA donde haremos ping para ver si hay internet
set ip=www.google.com

rem COMPRUEBA SI HAY CONEXION
ping -n 1 %ip% | find "TTL" > nul
if not errorlevel 1 set error=win
if errorlevel 1 set error=fail

rem SI HAY CONEXION CARGAMOS LA WEB, si no terminamos
if %error%==win ( goto CARGA_WEB ) else ( goto EOF )

:CARGA_WEB
start iexplore -k "url_de_la_web"

:EOF

Por supuesto cada uno tiene que adaptar el script sus necesidades (IP, usar chrome en vez del explorer, etc).

Este script carga la web sólo si hay conexion a internet (de hay el ping), ya que si no hay conexion, no queremos cargar el navegador con un bonito error.

Si no hay conexion, "aquí no ha pasado nada", finaliza y punto.