elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Crear directorio del mes actual en BAT
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Crear directorio del mes actual en BAT  (Leído 12,505 veces)
ferrec

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Crear directorio del mes actual en BAT
« en: 15 Enero 2015, 16:43 pm »

Hola, tengo una question que me esta volviendo loco y no encuentro una solucion... a ver si me podeis echar un cable por favor..

Lo que me gustaria hacer es crear un directorio con el mes actual, por ejemplo si estamos en enero, que reconozca que estamos en este mes y genere ese directorio llamado "enero", creo que es algo sencillo pero no se como hacerlo...lo que he podido es hacer directorios con el formato  día/mes/año pero no solo con el mes actual.


Muchas gracias


En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 20.151


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Crear directorio del mes actual en BAT
« Respuesta #1 en: 15 Enero 2015, 17:16 pm »

Tienes que usar el comando "date"

Código
  1. @echo off
  2. mkdir directorio %DATE%

Ejemplo:

Código
  1. @ECHO OFF
  2. @ECHO RESPALDO DE ARCHIVOS
  3. REM creamos una variable conteniendo la fecha actual con el formato año-mes-dia
  4. SET FOLDER=%date:~6,4%-%date:~3,2%-%date:~0,2%
  5. REM Creamos la carpeta donde se guardará la copia de respaldo
  6. IF NOT EXIST Backup MKDIR Backup
  7. MKDIR Backup%FOLDER%
  8. REM Seteamos las propiedades del comando XCOPY
  9. SET BACKUPCMD=XCOPY /S /C /D /E /H /I /R /Y
  10. REM Ejecutamos la instrucción
  11. %BACKUPCMD% Actual. Backup%FOLDER%


« Última modificación: 16 Enero 2015, 05:18 am por Eleкtro » En línea

ferrec

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Crear directorio del mes actual en BAT
« Respuesta #2 en: 15 Enero 2015, 18:05 pm »

Hola gracias por la respuesta...pero DATE es la fecha completa
al crear el directorio se crearia 15/01/2014 y no el mes solamente que es lo que busco.

No se si me he explicado bien, perdonad...

lo que necesito es un bat para que me genere un directorio solamente con el MES actual.

Mil gracias de nuevo por tu respuesta
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Crear directorio del mes actual en BAT
« Respuesta #3 en: 16 Enero 2015, 05:38 am »

Hola

No es posible obtener el nombre de un mes específico mediante un lenguaje limitado como es Batch, no de forma natural.

Puedes hacerlo así:

Código
  1. @Echo Off & Title GetMonthName by Elektro
  2. (CHCP 1252)1>NUL
  3.  
  4. Call :GetMonthName
  5. Echo [+] Current Month Is: "%monthName%"
  6. :: MKDir ".\%monthName%"
  7.  
  8. Pause&Exit /B 0
  9.  
  10. :GetMonthName
  11. Set    "monthNames=Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre"
  12. Set /A "monthInt=%date:~3,2%" & REM Set For DD/MM/YYYY
  13. For /F "Tokens=%monthInt%" %%# in ('Echo %monthNames%') do (
  14.   Set "monthName=%%#"
  15.   Exit /B 0
  16. )
  17. Goto:EOF

PD: En cualquier otro lenguaje sería una tarea simple de llevar a cabo, por ejemplo en VBS, otor lenguaje sencillo que podrías usar en vez de Batch.

Saludos
« Última modificación: 16 Enero 2015, 05:44 am por Eleкtro » En línea


ferrec

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Crear directorio del mes actual en BAT
« Respuesta #4 en: 16 Enero 2015, 10:22 am »

gracias Eleкtro, lo he probado como me has puesto pero solo me muestra el mes y no me genera el directorio , no me importa que no sea natural, solo que cuando ejecute el bat si no existe el directorio del mes actual que me lo cree...  

Una pregunta...es mas sencillo que el bat llame a VB me genere este directorio si no exite y luego continue con el Bat? ...Perdona por mi ignorancia  :-[

Gracias de nuevo pr tu ayuda :)



Ya esta solucionado...solamente me preguntaba pero no se porque no me lo generaba... le he quitado el echo que me mostraba el mes y le he dejado el mkdir que cree el directorio...


Gracias  ;-)

Código
  1. Echo Off & Title GetMonthName by Elektro
  2. (CHCP 1252)1>NUL
  3.  
  4. Call :GetMonthName
  5. rem Echo [+] Current Month Is: "%monthName%"
  6. MKDir ".\%monthName%"
  7.  
  8. Pause&Exit /B 0
  9.  
  10. :GetMonthName
  11. Set    "monthNames=Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre"
  12. Set /A "monthInt=%date:~3,2%" & REM Set For DD/MM/YYYY
  13. For /F "Tokens=%monthInt%" %%# in ('Echo %monthNames%') do (
  14.   Set "monthName=%%#"
  15.   Exit /B 0
  16. )
  17. Goto:EOF



[MOD]: Está prohibido hacer doble post
« Última modificación: 16 Enero 2015, 10:33 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Crear directorio del mes actual en BAT
« Respuesta #5 en: 16 Enero 2015, 10:31 am »

gracias Eleкtro, lo he probado como me has puesto pero solo me muestra el mes y no me genera el directorio , no me importa que no sea natural, solo que cuando ejecute el bat si no existe el directorio del mes actual que me lo cree...  

Examina bien el código y verás que no te genera la carpeta porqué añadí una linea de comentario, descoméntala y todo irá bien,
de todas formas se supone que deberías saber como se crea una carpeta, eso es lo mínimo si vas a utilizar Batch.
EDITO: ya vi que lo modificaste :P

Una pregunta...es mas sencillo que el bat llame a VB me genere este directorio si no exite y luego continue con el Bat? ...Perdona por mi ignorancia  :-[

Puedes hacer una especie de hibridación en el script para generar el VBS desde Batch y llamarlo y si quieres incluso devolver una respuesta y utilizarla, requiere más código, ya tienes una forma que funciona, úsala, en resumen "es lo mismo", jeje

Saludos!
« Última modificación: 16 Enero 2015, 10:34 am por Eleкtro » En línea


ferrec

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Crear directorio del mes actual en BAT
« Respuesta #6 en: 16 Enero 2015, 10:42 am »

Gracias de nuevo... muy buena ayuda!  ;D
En línea

elqueteconte

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Crear directorio del mes actual en BAT
« Respuesta #7 en: 9 Octubre 2015, 16:37 pm »

Saludos;

Yo tengo que hacer algo parecido pero de la siguiente manera:
1.- El usuario indica (en numeros) el mes. Es decir que hay que validar que solo coloque dos caracteres y que sean numeros entre 01 y 12.
2.- Verificar si la carpeta mes con el año está creada. Ejemplo: Si el usuario indica 09 entonces la carpeta sería Septiembre2015.
3.- Si la carpeta no existe;se crea la carpeta con el mes y el año, ejemplo Septiembre2015
4.- Buscar en el directorio donde se está ejecutando el bath todas las carpetas cuya estructura sea año, mes, dia corresponda al mes de la carpeta que acabo de crear y mover esas carpetas a la que acabo de crear. Ejemplo
Si cree la carpeta miruta/Septiembre2015 y en miruta/ hay carpetas 20150901, 20150902 ... hasta 20150930 y moverla a  miruta/Septiembre2015

Me podrías orientar en como hacerlo, no tengo ni idea.

Desde ya mil gracias....
En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
Re: Crear directorio del mes actual en BAT
« Respuesta #8 en: 9 Octubre 2015, 17:05 pm »

Saludos;

Yo tengo que hacer algo parecido pero de la siguiente manera:
1.- El usuario indica (en numeros) el mes. Es decir que hay que validar que solo coloque dos caracteres y que sean numeros entre 01 y 12.
2.- Verificar si la carpeta mes con el año está creada. Ejemplo: Si el usuario indica 09 entonces la carpeta sería Septiembre2015.
3.- Si la carpeta no existe;se crea la carpeta con el mes y el año, ejemplo Septiembre2015
4.- Buscar en el directorio donde se está ejecutando el bath todas las carpetas cuya estructura sea año, mes, dia corresponda al mes de la carpeta que acabo de crear y mover esas carpetas a la que acabo de crear. Ejemplo
Si cree la carpeta miruta/Septiembre2015 y en miruta/ hay carpetas 20150901, 20150902 ... hasta 20150930 y moverla a  miruta/Septiembre2015

Me podrías orientar en como hacerlo, no tengo ni idea.

Desde ya mil gracias....


Te ayudo un poquito... lo he programado en VBS en lugar de Bat/Batch, es un lenguaje mucho más sencillo de implementar bajo mi punto de vista:

Código
  1. '1.- El usuario indica (en numeros) el mes. Es decir que hay que validar que solo coloque dos caracteres y que sean numeros entre 01 y 12.
  2. '2.- Verificar si la carpeta mes con el año está creada. Ejemplo: Si el usuario indica 09 entonces la carpeta sería Septiembre2015.
  3. '3.- Si la carpeta no existe;se crea la carpeta con el mes y el año, ejemplo Septiembre2015
  4. '4.- Buscar en el directorio donde se está ejecutando el bath todas las carpetas cuya estructura sea año, mes, dia corresponda al mes de la carpeta que acabo de crear y mover esas carpetas a la que acabo de crear. Ejemplo
  5. 'Si cree la carpeta miruta/Septiembre2015 y en miruta/ hay carpetas 20150901, 20150902 ... hasta 20150930 y moverla a  miruta/Septiembre2015
  6.  
  7. Set oFSO = CreateObject("Scripting.FileSystemObject")
  8.  
  9. iMes = InputBox("Introduce el mes: ")
  10.  
  11. If isNumeric(iMes) = False Then
  12. While isNumeric(iMes) = False
  13. MsgBox "Solo se permiten valores numéricos", vbExclamation + vbOkOnly
  14. iMes = InputBox("Introduce el mes: ")
  15. Wend
  16. End If
  17.  
  18. If iMes < 1 Or iMes > 12 Then
  19. While iMes < 1 Or iMes > 12
  20. MsgBox "Solo se permiten valores numéricos entre 1 y 12", vbExclamation + vbOkOnly
  21. iMes = InputBox("Introduce el mes: ")
  22. Wend
  23. End If
  24.  
  25. Select Case iMes
  26. Case 1
  27. sMes = "Enero"
  28. Case 2
  29. sMes = "Febrero"
  30. Case 3
  31. sMes = "Marzo"
  32. Case 4
  33. sMes = "Abril"
  34. Case 5
  35. sMes = "Mayo"
  36. Case 6
  37. sMes = "Junio"
  38. Case 7
  39. sMes = "Julio"
  40. Case 8
  41. sMes = "Agosto"
  42. Case 9
  43. sMes = "Septiembre"
  44. Case 10
  45. sMes = "Octubre"
  46. Case 11
  47. sMes = "Noviembre"
  48. Case 12
  49. sMes = "Diciembre"
  50. End Select
  51.  
  52. sFolder = sMes & Year(Now)
  53.  
  54. If oFSO.FolderExists(sFolder) = True Then
  55. MsgBox "La carpeta " & sFolder & " ya existe", vbInformation + vbOkOnly
  56. Else
  57. MsgBox "La carpeta " & sFolder & " no existe", vbInformation + vbOkOnly
  58. oFSO.CreateFolder(sFolder)
  59. End If

Verás que el punto (4) no lo he programado, te lo dejo para ti :) con el objeto oFSO podrás hacerlo sin problemas. Si tienes dudas pregunta, pero dale un poco al coco :)
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
elqueteconte

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Crear directorio del mes actual en BAT
« Respuesta #9 en: 9 Octubre 2015, 17:17 pm »

Me haz dejado loco jajajajaja.

Gracias mil.

Pensé en hacerlo en VB.net.

Voy a darle por allí a ver que logro.

Te podré contactar por este hilo o abro uno nuevo?
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cómo obtener la semana actual a partir del día actual
Bases de Datos
cpichi.cu 4 9,399 Último mensaje 25 Septiembre 2018, 17:25 pm
por cchianalino
Crear una url de directorio
PHP
gAb1 3 1,538 Último mensaje 18 Abril 2013, 02:47 am
por gAb1
[Resuelto] Crear Indice compuesto (AUTO_INCREMENT(DEL AÑO ACTUAL)+AÑO ACTUAL)
Bases de Datos
LaThortilla (Effort) 9 4,730 Último mensaje 20 Febrero 2015, 18:28 pm
por LaThortilla (Effort)
Cambio de directorio actual desde programa C
Programación C/C++
juligarc10 1 482 Último mensaje 2 Octubre 2019, 21:58 pm
por RayR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines