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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch][Tutorial] Crear respaldos de lote de archivos.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch][Tutorial] Crear respaldos de lote de archivos.  (Leído 2,182 veces)
areyes

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[Batch][Tutorial] Crear respaldos de lote de archivos.
« en: 4 Septiembre 2019, 18:38 pm »

Estimados,

Gracias por el manual que tienen de Batch, a cambio del valioso instructivo que proporcionan, dejo aquí lo que cree.

A grandes rasgos esto realiza una copia de seguridad de archivos que están dentro de una carpeta y que comienzan con un nombre en particular, la fecha de los archivos debe venir en el nombre del archivo que se revisan.
Se crearan dos carpetas donde se colocarán los archivos, Carga y Respaldos. La carpeta Carga servirá para que otro proceso tome solo ese archivo para su procesamiento.

Cualquier duda les responderé.

Saludos.

Código
  1. rem echo ################
  2. rem echo # Creado Por   #
  3. rem echo # Alexis Reyes #
  4. rem echo # s00a-areyes  #
  5. rem echo ################
  6.  
  7. rem Archivos a revisar:
  8. rem archivo_20190401.txt
  9. rem archivo_20190403.txt
  10. rem archivo_20190408.txt
  11. rem archivo_20190420.txt
  12.  
  13. rem Despues de ejecutar el batch se crea la siguiente estructura de archivos y carpetas:
  14.  
  15. rem CARGA
  16. rem - NOMBRE_NUEVO.TXT
  17. rem RESPALDOS
  18. rem - 01-04-2019
  19. rem - NOMBRE_NUEVO.TXT
  20. rem - 03-04-2019
  21. rem - NOMBRE_NUEVO.TXT
  22. rem - 08-04-2019
  23. rem - NOMBRE_NUEVO.TXT
  24. rem - 20-04-2019
  25. rem - NOMBRE_NUEVO.TXT
  26.  
  27. rem Se debe considerar los siguientes parametros:
  28. rem carpetaCarga: Es la ruta donde se colocará el archivo mas actual, que luego otro proceso tomará.
  29. rem carpetaRespaldo: Es la carpeta donde se crearan las carpetas por día.
  30. rem nombreArchivo: Es el nombre que tendrán todos los archivos que se revisarán luego del proceso de normalizacion de nombres.
  31. rem subCadenaInicio: Es la cadena que se revisará en los nombres de archivos que se quieran revisar. Ej: Archivo_20190401.txt -> Archivo_
  32. rem vNumero: Es el numero de fecha extraida del nombre que son buscados Ej: Archivo_20190401.txt -> 20190401
  33. @echo off
  34. set dirActual=%cd%
  35. rem echo %dirActual%
  36. SET subCadenaInicio=Archivo_
  37. rem Establecer el nombre de la carpeta en donde estará la última carga
  38. SET carpetaCarga=CARGA
  39. rem Establecer el nombre de la carpeta en donde estarán los respaldos de los archivos
  40. SET carpetaRespaldo=RESPALDOS
  41. rem Establecer el nombre de salida que tendrán todos los archivos
  42. SET nombreArchivo=NOMBRE_NUEVO.TXT
  43. rem Establecer variable del día más actual
  44. SET vDiaMasActual=0
  45. rem Etiqueta en donde se iniciará el programa
  46. GOTO:INICIO
  47. rem Funcion que verifica que si una carpeta existe, sino la crea.
  48. rem Recibe 2 parametros: La carpeta que se quiere saber si existe y el nombre de la etiqueta de dónde irá el código luego de terminar la funcion.
  49. :ExistenciaCarpeta
  50. IF exist %1 (
  51. rem echo %1 exists
  52. ) ELSE (
  53. mkdir %1
  54. rem echo %1 created
  55. )
  56. GOTO:%2
  57. rem Funcion que verifica que si una archivo existe, sino lo crea vacio. Luego realiza una copia.
  58. rem Recibe 3 parametros: El archivo, el archivo que se quiere copiar  y dónde irá el código luego de terminar la funcion.
  59. :ExistenciaArchivo
  60. IF exist %1 (
  61. del /f/s/q %1
  62. ) ELSE (
  63. echo "" > %1
  64. )
  65. COPY %2 %1
  66. GOTO:%3
  67. rem Inicio del programa
  68. :INICIO
  69. Call:ExistenciaCarpeta %carpetaRespaldo% %carpetaRespaldo%
  70. :RESPALDOS
  71. Call:ExistenciaCarpeta %carpetaCarga% %carpetaCarga%
  72. :CARGA
  73. rem Inicia el ciclo para revisar los archivos que se quieren revisar
  74. goto:ciclo
  75. :cont
  76. rem echo %1
  77. SET linea=%1
  78. SET vNumero=%linea:~4,8%
  79. SET vCarpetaNueva=RESPALDOS\%linea:~10,2%-%linea:~8,2%-%linea:~4,4%
  80. rem ECHO Nombre Fecha: %vCarpetaNueva%
  81. rem ECHO %vNumero% %vDiaMasActual%
  82. Call:ExistenciaCarpeta %vCarpetaNueva% CarpetaNueva
  83. :CarpetaNueva
  84. rem Se verifica que la fecha del archivo que se está revisando es mayor al dia que se ha guardado como más actual, si es así se reemplaza el valor.
  85. IF %vNumero% GTR %vDiaMasActual% (
  86. SET vDiaMasActual=%vNumero%
  87. Call:ExistenciaArchivo %carpetaCarga%\%nombreArchivo% %linea% ArchivoLinea1
  88. )
  89. :ArchivoLinea1
  90. Call:ExistenciaArchivo %vCarpetaNueva%\%nombreArchivo% %linea% ArchivoLinea2
  91. :ArchivoLinea2
  92. del /f/s/q %linea%
  93. rem ECHO DIA MAS ACTUAL: %vDiaMasActual%
  94. rem Se revisan todos los archivos que se encuentran dentro de la carpeta que se ejecuta el batch y que comienzan con la subCadenaInicio
  95. :ciclo
  96. FOR %%x in (%subCadenaInicio%*) DO (
  97. call :cont %%x
  98. )
  99.  


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear archivos desde batch [Solucionado]
Scripting
romanjr 4 3,970 Último mensaje 17 Febrero 2011, 01:57 am
por romanjr
Renombrar archivos por lote segun caracter - batch
Scripting
rochro 1 2,808 Último mensaje 28 Agosto 2015, 11:31 am
por Eleкtro
Script en batch para crear respaldos.
Scripting
mis4 0 2,234 Último mensaje 21 Diciembre 2016, 21:00 pm
por mis4
Insertar archivo en lote de archivos rar
Scripting
flipyado 0 1,668 Último mensaje 3 Mayo 2018, 11:54 am
por flipyado
Duda sobre batch o lote
Dudas Generales
MrSimpatia 1 1,830 Último mensaje 27 Octubre 2018, 02:43 am
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines