Código de Ms-Dos - organizador

Imágen de perfil
Val: 20
Ha aumentado su posición en 2 puestos en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

organizadorgráfica de visualizaciones


Ms-Dos

Publicado el 9 de Mayo del 2019 por Gabi
751 visualizaciones desde el 9 de Mayo del 2019
Proceso batch para organizar archivos dentro de directorios/subdirectorios.

Genera una carpeta backup en el directorio desde que se ejecute (que será el directorio raíz del proceso") y dentro de esta organizará los diferentes archivos que encuentre en 5 categorías(genera directorio para cada categoría):
- Audio
- Imagen
- Documentos
- Video
- Otros

Dentro de cada una de estas categorías, copia (no elimina) los archivos del directorio raiz y los diferentes subdirectorios.

El proceso recupera la fecha de modificación de los ficheros (se pude modificar para la fecha de creación, está comentado en el proceso) y crea subdirectorios en cada categoria, incluyendo en cada caso los ficheros por la fecha de modificación.

!!!AVISO!!! Para directorios con gran volumen de datos puede tardar mucho

Requerimientos

Necesario ms-dos o windows con interprete de comandos

1.0

Publicado el 9 de Mayo del 2019gráfica de visualizaciones de la versión: 1.0
752 visualizaciones desde el 9 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
@echo off & SetLocal EnableDelayedExpansion
REM variables
:: Directorios origen
SET origen=%~p0
:: Directorios destino
SET destino=%~p0%backup\
SET rutaAudio=%destino%01_audio\
SET rutaDoc=%destino%02_doc\
SET rutaImagen=%destino%03_imagen\
SET rutaVideo=%destino%04_video\
SET rutaOtro=%destino%05_otros\
:: Formatos a recuperar
SET audios=.aac .mp3 .ogg .wma
SET documentos=.acces .doc .docx .dot .ott .pdf .rtf .txt .tex .xls .xlsx .xml
SET imagenes=.bmp .gif .jpeg .jpg .png .svg
SET videos=.avi .divx .mp4 .mpeg .mpg .wmv
 
REM inicio del proceso
:: Recuperamos fecha y hora de inicio y se guarda en el fichero de salida
set inicio=%date% %time%
:: Si no existe directorio destino, se crea
if not exist "%destino%" md "%destino%"
 
:: Comienza en directorio origen y recorre todos los subdirectorios
for /r %%r in (.) do (
  :: Almacena las rutas de directorios y subdirectorios a tratar
  pushd %%r
 
  :: Llamada a funcion para organizar por tipo de archivo
  for %%f in ("*.*") do (
	call :tratar %%f
  )
 
  :: Descarta las rutas almacenadas
  popd
)
 
REM Fin del proceso
:: Recuperamos fecha y hora de inicio y se guarda en el fichero de salida
echo INICIO !inicio!
echo FIN %date% %time%
:: Finaliza el proceso
goto:EOF
 
REM Funciones
:tratar
:: parametro pasado al llamar a la funcion
set archivo=%1
:: tipo de archivo
set tipo=%~x1
:: Fecha del archivo. Para fecha de creacion SET varFecha=%~tc1
SET varFecha=%~t1
:: Recupera mes y año
SET varMes=!varFecha:~3,2!
SET varAny=!varFecha:~6,4!
SET varAAMM=!varAny!!varMes!
SET /a tratado=0
 
:: Comprueba si archivo es de Audio
for %%a in (!audios!) do (
  if !tratado!==0 (
    if /i !tipo!==%%a (
	  if not exist "!rutaAudio!" md "!rutaAudio!"
	  set ruta=!rutaAudio!!varAAMM!\
	  if not exist "!ruta!" md "!ruta!"
      copy !archivo! !ruta!
	  set /a tratado=1
    )
  )
)
 
:: Comprueba si archivo es Documento
if !tratado!==0 (
  for %%d in (!documentos!) do (
    if !tratado!==0 (
      if /i !tipo!==%%d (
        if not exist "!rutaDoc!" md "!rutaDoc!"
	    set ruta=!rutaDoc!!varAAMM!\
	    if not exist "!ruta!" md "!ruta!"
        copy !archivo! !ruta!
	    set /a tratado=1
      )
    )
  )
)
 
:: Comprueba si archivo es Imagen
if !tratado!==0 (
  for %%i in (!imagenes!) do (
    if !tratado!==0 (
      if /i !tipo!==%%i (
        if not exist "!rutaImagen!" md "!rutaImagen!"
	    set ruta=!rutaImagen!!varAAMM!\
	    if not exist "!ruta!" md "!ruta!"
        copy !archivo! !ruta!
	    set /a tratado=1
      )
    )
  )
)
 
:: Comprueba si archivo es Video
if !tratado!==0 (
  for %%v in (!videos!) do (
    if !tratado!==0 (
      if /i !tipo!==%%v (
        if not exist "!rutaVideo!" md "!rutaVideo!"
	    set ruta=!rutaVideo!!varAAMM!\
	    if not exist "!ruta!" md "!ruta!"
        copy !archivo! !ruta!
	    set /a tratado=1
      )
    )
  )
)
 
:: Si no es ninguno de los anteriores
if !tratado!==0 (
  if not exist "!rutaOtro!" md "!rutaOtro!"
  copy !archivo! !rutaOtro!
)



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5300