BATCH para enviar correo si no se encuentra un archivo remoto

Alguien tendra algun script o batch que me ayude a verificar si existe un archivo en un servidor remoto

Y que me notifique por correo si este no existe, he intentado pero no logro obtener resultados

Si alguien conoce alguna forma o alguna herramienta que me permita realizar esto se los agradecería

Respuesta
1

Como no das muchas pistas sobre tu acceso al servidor remoto no me queda más remedio que hacer suposiciones.

1. El archivo cuya existencia quieres comprobar se encuentra en la ubicación \\servidor\carpeta y se llama "archivo.txt"

2. Tienes los permisos necesarios para asignarte esa carpeta como unidad de red

3. Conoces (o estás dispuesta a utilizar) un programa de envío de email desde línea de comando llamado SendEmail.exe que se puede conseguir gratuitamente en http://caspian.dotconf.net/menu/Software/SendEmail/  .(Supongo que habrá otros similares pero es por poner un ejemplo). Puedes ver alguna referencia a este programa en Enviar mail con cónsulta mysql.

4. El origen del correo es una cuenta de gmail ([email protected]) y la autentificación se hace con el usuario "user" y la password "clave". El destino es otra cuenta de gmail ([email protected])

El bat que te sugiero podría ser algo así:

@echo off
net use t: \\servidor\carpeta /persistent:no
if exists t:\archivo.txt goto :fin
Echo No se ha encontrado el archivo buscado. Se envia eMail
SendEmail -s smtp. Gmail.com:587 -f [email protected] -u "Asunto: error" -m "No se encuentra el archivo ARCHIVO.TXT" -t [email protected] -xu user -xp clave
:Fin 

No dudes en plantear cualquier duda que se te ocurra o cualquier problema que se presente

El editor de la página, fiel a su costumbre, ha modificado algunas cosas y algunas tienen importancia. Por ejemplo ha separado smtp. Gmail.com (además de poner en mayúsculas Gmail) en el comando SendEmail. Lógicamente para que funcione tiene que tener la sintaxis adecuada.
Además yo he metido la pata en la sintaxis del IF de la tercera línea, debe ser IF EXIST en lugar de IF EXISTS

Hola gggirald

He creado el bat con IF EXIST solo que no logro que me reconozca el nombre de archivo,

el archivo que necesito verificar es un .rar que se genera con fecha y hora, la hora es la que no logro manejar en la búsqueda, 

como por ejemplo:

Backup_%date:~6%_%date:~3,2%_%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.rar

Si genero el archivo solo con fecha  y luego ejecuto el bat funciona de maravilla, pero necesito que también lleve hora.

Saludos!!! 

Intuyo que el problema con las horas y la forma de construir el nombre tiene que ver con las horas menores que 10, porque de esa manera se generan con un espacio que "corta" el nombre. Habría dos posibilidades, según se genere el nombre original a buscar, quitar el espacio o cambiarlo por un cero. Imagino que esto segundo será lo que te interesa. Prueba con esto:

set horas=%time:~0,2%
if %horas% lss 10 set horas=%horas: =0%
Echo Backup_%date:~6%_%date:~3,2%_%date:~0,2%_%horas%%time:~3,2%%time:~6,2%.rar

Si solo quieres limpiar el espacio de la hora el segundo comando debería ser:

if %horas% lss 10 set horas=%horas: =%

Me gustaría saber si has conseguido resolver tu problema y si te ha servido de algo la solución que te sugería para que el nombre del archivo llevara también la hora.

1 respuesta más de otro experto

Respuesta
1

I. Hola Lily, ¿podría servir este programa?

https://norfipc.com/internet/wget.html 

Algo más de info, siento no encontrar otra información. 

https://support.microsoft.com/es-es/kb/65994 

https://blogdenotasj.blogspot.com.es/2013/11/como-enviar-un-email-desde-un-archivo.html 

PD: Perdón, no vi la respuesta de el compañero GggiIrald.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas