Título: Averiguar dia de la semana [Batch] Publicado por: Shinseiki86 en 26 Agosto 2009, 17:44 pm Hola a todos!
Tengo un archivo bat que necesita saber el dia de la semana para poder excluir los sabados y los domingos. El progrma descarga por ftp archivos que estan en carpetas con la estructura yyyy-mm-dd, pero solo dias habiles. Lo uqe hago es: Código: [...] Esto funciona de maravilla en Win2000... pero en XP no sirve, ya que la %DATE% no muestra el dia de la semana. ¿Que puedo hacer? ¿Hay otra forma? Gracias! ;D Título: Re: Averiguar dia de la semana [Batch] Publicado por: kevlar en 26 Agosto 2009, 18:03 pm Saludos.
Puedes usar el comando AT ve la ayuda en AT /? Hay una utilidad se llama FDATE te permite efectuar operaciones sobre las fechas. No recuerdo el link. :D Título: Re: Averiguar dia de la semana [Batch] Publicado por: Shinseiki86 en 26 Agosto 2009, 18:22 pm No necesito programar la tarea para su ejecución.
En el ftp, un proveedor guarda los archivos en carpetas con nombre yyyy-mm-dd Citar \ 2009-08-26 2009-08-25 2009-08-24 ... Tengo un bat que ingresa a cada carpeta y me descarga los archivos que tiene cada carpeta solo de los 10 ultimos dias habiles (excluyo los sabados y los domingos). la idea es hacerlo solo con variables de bat, o en últimas de vbs, pero sin instalar programas. Título: Re: Averiguar dia de la semana [Batch] Publicado por: Shinseiki86 en 26 Agosto 2009, 21:11 pm El codigo completo de la funcion qu crea el archivo de configuración para la conexión ftp es:
Código: :: Configuración FTP El problema lo tengo en la etiqueta setdia. La unica solucion fue que el usuario ingresara el dia manualmente, pero la idea es que el proceso se ejecute en un servidor. Título: Re: Averiguar dia de la semana [Batch] Publicado por: kevlar en 27 Agosto 2009, 16:04 pm Holas.
Encontre esta información, espero te sirva. http://www.paniagua.net/foros/forum_posts.asp?TID=436 (http://www.paniagua.net/foros/forum_posts.asp?TID=436) Título: Re: Averiguar dia de la semana [Batch] Publicado por: kevlar en 27 Agosto 2009, 16:09 pm Aqui esta un ejemplo mas completo
http://www.computerhope.com/forum/index.php?topic=72724.0 (http://www.computerhope.com/forum/index.php?topic=72724.0) Título: Re: Averiguar dia de la semana [Batch] Publicado por: Shinseiki86 en 27 Agosto 2009, 17:24 pm Wow...
Listo.. lo que necesitaría del codigo es: Código: set vbsfile=%temp%\newdate.vbs Es perfecto... aunque la semana iniciaría el domingo... solo sería cambiarle unas cuantas cosas al bat... ¡Gracias kevlar! ;-) Pero tengo una duda... Las variables Wd y Wn... ¿que son? Código: Wd = DatePart("WW" , Newdate) En estos momentos me arrojan 35 y 239 respectivamente. Título: Re: Averiguar dia de la semana [Batch] Publicado por: leogtz en 27 Agosto 2009, 17:25 pm Mmmmmm, creo que podrías usar un VBS, así te ahorras bastante trabajo que sería en Batch.
Edito : Ya vi que lo resolviste, que bien. Hay 2 formulas generales para sacar el día de la semana. A) De meses de enero a febrero: Código: n=a+31*(m-1)+d/a-1)/4-3*((a+99)/100)/div4 Código: n=a+31*(m-1)+d(-(4*m+23)/10+a/4-(3*(a/100+1))/4 Donde a = año, m = mes, d = dia. Cuando hayas hecho los cálculos, haces: Código: n%=7 Como ves, es algo engorroso. Título: Re: Averiguar dia de la semana [Batch] Publicado por: 0x0309 en 27 Agosto 2009, 19:30 pm Mira, consultando la wikipedia hice este código, a lo mejor te sirve.
Nota: Si mal no recuerdo, en windows vista, está el comando forfiles (correción: es robocopy), que en la ayuda te muestra la fecha, así es que para ese sistema operativo, podrías parsear con for /f. Nota, utilicé el código de Herbert Kleebauer, para extraer la fecha, para que no tengas problemas, debido a que hay distintos formatos de fecha de acuerdo a la configuración regional. Modificación: :diaFecha estaba mal. La he actualizado. Código: @echo off Título: Re: Averiguar dia de la semana [Batch] Publicado por: Novlucker en 27 Agosto 2009, 19:40 pm A mi no me había gustado la parte vbs que habías dejado en principio, así que te dejo otro :P
Código Saludos Título: Re: Averiguar dia de la semana [Batch] Publicado por: 0x0309 en 27 Agosto 2009, 19:43 pm genial, distintas soluciones, creo que me equivoqué, el comando que muestra la fecha en la ayuda en windows seven vista o en xp si lo instalas con el resource kit es:
robocopy. Así: Código: robocopy.exe | findstr "Started Inicio" produce: Código: Started : Thu Aug 27 13:46:29 2009 o Código: Inicio: Thu Aug 27 13:46:29 2009 Con eso, ya puedes armar un código parseando con for /f. Título: Re: Averiguar dia de la semana [Batch] Publicado por: Novlucker en 28 Agosto 2009, 01:52 am Como veo que ya esta solucionado .. te repondo a la pregunta que habías dejado antes...
Citar Pero tengo una duda... Las variables Wd y Wn... ¿que son? Código: Wd = DatePart("WW" , Newdate) En estos momentos me arrojan 35 y 239 respectivamente. Wd representa la semana del año ... estamos en la semana 35 Wn representa el día del año ... vamos por el día 239 Saludos Título: Re: Averiguar dia de la semana [Batch] Publicado por: kevlar en 28 Agosto 2009, 15:45 pm Saludos a todos.
Me gustaría que la solución en BAT fuera más simple, pero creo que es parte del arte de programar con archivos BAT. Por otra parte VBS nos lo hace fácil y sobre todo lo podemos usar con los archivo BAT. Estaba buscando información sobre DatePart y me encontré este enlace, esta muy interesante :-*: http://ns7.webmasters.com/caspdoc/html/vbscript_datepart_function.htm (http://ns7.webmasters.com/caspdoc/html/vbscript_datepart_function.htm) Título: Re: Averiguar dia de la semana [Batch] Publicado por: Novlucker en 28 Agosto 2009, 16:07 pm Es que vbs en la mayoría de los casos tiene funciones específicas para hacer cosas que en batch debes de crearte, además de que es fácil encontrar ayuda referente a sus funciones, ya que tiene parentezco con VB, y con ir a la MSDN se soluciona el tema (CASI siempre)
Ej Datepart: :http://msdn.microsoft.com/en-us/library/20ee97hz%28VS.80%29.aspx Saludos Título: Re: Averiguar dia de la semana [Batch] Publicado por: kevlar en 29 Agosto 2009, 04:33 am Tiene razón SEN-SEI Novlucker.
Es solo que aún no se suficiente de la programación en BATCH. :-\ y me voy por el camino fácil :-[ Título: Re: Averiguar dia de la semana [Batch] Publicado por: Novlucker en 29 Agosto 2009, 05:08 am Te refieres a que vbs es el camino fácil?
No es más fácil ... es que es un lenguaje versátil y por medio del cual haciendo uso de objetos puedes realizar cosas que en batch no podrías ;) Saludos Título: Re: Averiguar dia de la semana [Batch] Publicado por: kevlar en 29 Agosto 2009, 06:20 am Nop.
Me refiero a que escribo menos código. :-X Y si quiero entender todo lo que hace el archivo bat me toma más tiempo. :-[, en cambio con la función ya hecha pues solo hay que usarla. Lo cual no quiere decir que no me guste hacer archivos bat, me ha sido bastante utilies, solo quisiera que Microsoft les agregara más gasolina y se pudieran hacer más cosas como con los shells de Unix, aunque aclaro el que yo no sepa como hacerlo en BAT no quiere decir que no se pueda. ;) Título: Re: Averiguar dia de la semana [Batch] Publicado por: Shinseiki86 en 3 Octubre 2009, 00:18 am Muchachos, al final me quedé con esta:
Código: :: Establece el dia de la semana (Dom=1 hasta Sab=7)*********** Todas las ayudas que me dieron me sirvieron para aplicarlas en otros programas. Me encantó la formula para obtener el dia matematicamente, pero por comodidad (mucho codigo) me quedo con este. Gracias! Título: Re: Averiguar dia de la semana [Batch] Publicado por: 0x5d en 8 Octubre 2009, 08:43 am Llegue tarde...
Código: @echo off Título: Re: Averiguar dia de la semana [Batch] Publicado por: luisrosarior en 6 Diciembre 2013, 22:43 pm Saludos.
Con respecto a si funciona en Windows XP o no, la respuesta es que sí, y se puede conseguir el mismo resultado que Windows 2000, sólo debemos ir al Panel de control, Configuración regional y de idioma, y en "Estándares y formatos" cambiar el idioma a Inglés (Estados Unidos). ■ ■ ■ ■ DOM V6DC13H1405LR |