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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta  (Leído 4,180 veces)
bITEBUG

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
« en: 15 Junio 2011, 05:58 am »

Puede resultar util si como yo nunca borran los archivos comprimidos luego de extraerlos, a menos que se les llene un disco.

Rardel.bat
Código
  1. if %1==/h goto help
  2. rem rardel a estrenar
  3. del extracted.log>nul
  4. del job>nul
  5. del suspects>nul
  6. setlocal enabledelayedexpansion
  7. dir /b %2*>job
  8. for /f "delims=" %%x in (job) do (set query=%%x
  9. set query=!query:+=!
  10. set query=!query: =*!
  11. dir /b "%~1\*!query!*">suspects
  12. dir /b "%~1\*!query!*"
  13. for /f "delims=" %%y in (suspects) do (echo LC "%1%%y" "%~2%%x"
  14. title Comparando "%1%%y" "%~2%%x"...
  15. call lc "%1%%y" "%~2%%x"))
  16. type extracted.log
  17. goto end
  18. :help
  19. echo Rardel junto con lcrar compara archivos rar y carpetas masivamente
  20. echo Rardel [ruta 1] [ruta 2]
  21. ruta 1  ruta de la carpeta que contiene los archivos rar a comparar
  22. ruta 2 ruta de la carpèta que contiene los archivos con los que se desea comparar
  23. :end
  24.  

Lcrar.bat
Código
  1. @echo off
  2. if %1==h goto help
  3. title Comparando %1 %2...
  4. set registro=%3
  5. if "%3"=="" set registro=extracted.log
  6. SETLOCAL ENABLEDELAYEDEXPANSION
  7. rem a revisar pero aparrentemente funcionando
  8. set interrorlevel=0
  9. set found=
  10. rem extrayendo
  11. if exist "y:\VMemSis\temp\rfc\nowchecking\" rd /s /q "y:\VMemSis\temp\rfc\nowchecking\"
  12. if exist "y:\VMemSis\temp\rfc" rd /s /q "y:\VMemSis\temp\rfc"
  13. md "y:\VMemSis\temp\rfc\muestras\originales"
  14. md "y:\VMemSis\temp\rfc\muestras\copias"
  15. "C:\Archivos de programa\WinRAR\RAR.exe" e -o+ %1 * "y:\VMemSis\temp\rfc\nowchecking\">nul
  16. dir /b /s %2>tubo.rfc
  17. rem creando muestras
  18. rem originales
  19. for %%x in ("y:\VMemSis\temp\rfc\nowchecking\*") do (if exist 32l del 32l
  20. copy "%%x" "%%~nx"32l>nul
  21. echo 32l>>"%%~nx"32l
  22. echo n>c
  23. comp /n=799999999999 "%%x" "%%~nx"32l<c>32l
  24. del "%%~nx"32l
  25. for /f "skip=2 tokens=5" %%y in (32l) do set maxlines=%%y
  26. del 32l
  27. del c
  28. rem corregido revision de tags ID3
  29. rem hay que separar casos
  30. set /a baseline=!maxlines!/2
  31. set /a line1=!baseline!+1
  32. set /a line2=!baseline!+2
  33. set /a line3=!baseline!+3
  34. set /a line4=!baseline!+4
  35. set /a lastline=baseline+5
  36. (findstr /n "." "%%x">"y:\VMemSis\temp\%%~nx"pl
  37. rem encontrar linea y volcar: el destino parece incorrecto a como de lugar
  38. rem la ruta de redireccion debe existir
  39. rem el tamaño del archivo no aumentaba porque el volcado estaba sobreescribiendo
  40. findstr "^^!baseline!: ^^!line1!: ^^!line2!: ^^!line3!: ^^!line4!: ^^!lastline!:"  "y:\VMemSis\temp\% style="color: #448888;">%~nx"pl>>"y:\VMemSis\temp\rfc\muestras\originales\%%~nx.lc"
  41. del "y:\VMemSis\temp\%%~nx"pl
  42. )
  43. )
  44.  
  45. rem copias
  46. for /f "tokens=*" %%x in (tubo.rfc) do (set file=%%x
  47. if exist 32l del 32l
  48. copy "!file!" "!file:~-8,5!"32l>nul
  49. echo 32l>>"!file:~-8,5!"32l
  50. echo n>c
  51. comp /n=799999999999 "!file!" "!file:~-8,5!"32l<c>32l
  52. del "!file:~-8,5!"32l
  53. for /f "skip=2 tokens=5" %%y in (32l) do set maxlines=%%y
  54. del 32l
  55. del c
  56. set /a baseline=!maxlines!/2
  57. set /a line1=!baseline!+1
  58. set /a line2=!baseline!+2
  59. set /a line3=!baseline!+3
  60. set /a line4=!baseline!+4
  61. set /a lastline=!baseline!+5
  62. (findstr /n "." "!file!">"y:\VMemSis\temp\"% style="color: #448888;">%~nx"pl
  63. findstr "^^!baseline!: ^^!line1!: ^^!line2!: ^^!line3!: ^^!line4!: ^^!lastline!:"  "y:\VMemSis\temp\% style="color: #448888;">%~nx"pl>>"y:\VMemSis\temp\rfc\muestras\copias\%%~nx.lc"
  64. del "y:\VMemSis\temp\%%~nx"pl
  65. )
  66. )
  67. rem hasta aqui va bien
  68.  
  69.  
  70. REM COMPARANDO MUESTRAS
  71. for %%x in ("y:\VMemSis\temp\rfc\muestras\originales\*") do (
  72. set /a totalfiles=!totalfiles!+1
  73. set found=-1
  74. for %%y in ("y:\VMemSis\temp\rfc\muestras\copias\*") do if not !found!==1 (fc "%% style="color: #448888;">x" "%%y">nul
  75. if !errorlevel!==1 echo ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
  76. if !errorlevel!==0 echo ²²²²²²²°°°°°°°°°°°°°°°°°°°°°°°°°°°°²²²²²²²²
  77. if !errorlevel!==0 set /a interrorlevel=!interrorlevel!-1
  78. if !errorlevel!==0 set found=1
  79. if not !errorlevel!==0 set found=0
  80. )
  81. )
  82.  
  83. rd /s /q "y:\VMemSis\temp\rfc"
  84. echo %interrorlevel%/%totalfiles%
  85. set /a rate=%interrorlevel:~1%00/%totalfiles%
  86. echo %rate% %%
  87. rem if %interrorlevel:~1%==%totalfiles%  move %1 %3\%1
  88. if !rate! geq 87 echo %1 %rate% %%>>%registro%
  89. rem casi casi 0k
  90. goto end
  91. :help
  92. echo Lc comparara archivos en el disco duro con sus supuestas imagenes dentro de un archivo rar o zip
  93. echo La sintaxis de lc es la siguiente:
  94. echo Lc [/h] ^<imagen^> ^<carpeta^> ^<archivo de registro^>
  95. echo /h  muestra este texto
  96. echo ^<imagen^>  Ruta completa del archivo rar o zip que se desea comparar
  97. echo ^<carpeta^> Ruta de la carpeta que contiene los archivos con los que se desea comparar
  98. echo ^<archivo de registro^> Archivo que llevara el registro de los archivos comprimidos que coinciden ^(de no especificarse se usara el rachivo por defecto^)
  99. :end

Es un tanto rudo pero funciona bien con menos de 10 archivos si son grandes dependiendo de la cantidad de memoria virtual disponible, lcrar no considera dos archivos iguales (aun). si alguno de los dos o ambos fueron modificados con metadata.

Se que hay metodos mas sofisticados y estoy trabajando en ellos, asi como lograr sortear los tags.
Si alguien considera que se puede mejorar, o sabe de alguna forma de ampliar la memoria virtual puede comentar.


En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
« Respuesta #1 en: 15 Junio 2011, 07:43 am »

http://foro.elhacker.net/scripting/libreria_de_funciones_y_scripts_batch_actualizado_260507-t163184.0.html

deberias subir tus scripts a ese post, se ven muy interesantes

un saludo!


En línea

No he vuelto, solo estoy de paso.
bITEBUG

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
« Respuesta #2 en: 15 Junio 2011, 22:52 pm »

Gracias pitoloko, tengo muchos mas en los que estoy trabajando y otros que andan perdidos entre los archivos de mi carpeta de administrador, porque como ya habras visto soy muy desordenado y raramente etiqueto o pongo una sección de ayuda en mis batchs asi que pocas veces recuerdo para que los hice luego de creados :S

Tendre que perder un fin de semana averiguando para que carajo sirven todos esos archivos .bat con nombres raros y etiquetandolos
En línea

FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
« Respuesta #3 en: 16 Junio 2011, 00:39 am »

http://foro.elhacker.net/scripting/libreria_de_funciones_y_scripts_batch_actualizado_260507-t163184.0.html

deberias subir tus scripts a ese post, se ven muy interesantes

un saludo!
En línea

Asdf debería ser algún tipo de función.
bITEBUG

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
« Respuesta #4 en: 16 Junio 2011, 03:39 am »

Mañana publico estos y otros, ahora es tiempo de ponerse a jugar un jueguito.
Hasta pronto!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines