Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: teddy en 29 Septiembre 2017, 23:57 pm



Título: Comando IF THEN
Publicado por: teddy en 29 Septiembre 2017, 23:57 pm
Hola no sé si podríais ayudarme o si es posible usar el comando IF para lo que quiero hacer, Hay un achivo en mi Mediacenter que no sé porque System lo borra y vuelve a generarlo de nuevo creando otra vez todos los Thumbs.
Mi idea era crear un Bat que periodicamente mirara ese fichero para volcar otro y lo sustituyera.
En lenguaje coloquial seria: SI  el fichero C:\users\Mediacenter\appdata\local\Microsoft\ehome\ehthumbs_vista.db ES MENOR que 100.000 Bytes ENTONCEs copy c:\ehthumbs_vista.db a C:\users\Mediacenter\appdata\local\Microsoft\ehome\ehthumbs_vista.db.
Os agradeceria vuestra ayuda


Título: Re: Comando IF THEN
Publicado por: **Aincrad** en 30 Septiembre 2017, 00:58 am
listo , asi de facil:  ;D

Código
  1. @echo off
  2. goto s
  3. :k
  4. REM Create By **Aincrad**
  5. echo/
  6. ECHO RECUERDA QUE :
  7. echo/
  8. ECHO 1000 BYTES = 1 KB
  9. ECHO 1000 KB    = 1 MB
  10. ::::::::::::::::::::::
  11. :s
  12. ::::::::::::::::::::::
  13. @echo off
  14. set strdir="%appdata%\local\Microsoft\ehome\ehthumbs_vista.db"
  15. set dir="c:\ehthumbs_vista.db"
  16.  
  17. call :size %strdir%
  18.   (
  19.      pause>nul
  20.              exit   )
  21.  
  22.  
  23. :size
  24. if ["%~z1"] GTR ["100000"] (
  25. echo Es mayor de 100.000 byte, tiene %~z1
  26. exit
  27. ) else (
  28. echo Es menor de 100.000 byte, tiene %~z1
  29. copy "%dir%" "%strdir%
  30. exit
  31. )
  32. goto:eof

                                       COMENTA SI TE FUNCIONO  ;-)


Título: Re: Comando IF THEN
Publicado por: teddy en 30 Septiembre 2017, 01:24 am
Me has dejado con la boca abierta, ha funcionado a la primera.
Lo único que al final me dice que pulse una tecla, imagino que tendré que poner al final el comando exit para que cierre la ventana ya que lo quiero como un proceso en background.
De verdad que muchísimas gracias por tu ayuda


Título: Re: Comando IF THEN
Publicado por: **Aincrad** en 30 Septiembre 2017, 02:37 am
ya, lo he puesto como querías.

ahora si quieres que se ejecute cada vez que enciendas la pc. ve a :

inicio >> Startup o (inicio) >> presiona sobre la carpeta el click derecho>> abrir

y una ves alli copias el bat dentro de esa carpeta.  ;D



Título: Re: Comando IF THEN
Publicado por: teddy en 30 Septiembre 2017, 02:48 am
Muchísimas gracias otra vez.
Mi intención es crear una tarea en el Programador de Tareas de windows para que se ejecute p.ej cada hora.
Llevo años con el problema de este fichero que se recrea cuando quiere (imagino que es un bug de Windows Media Center) al que nunca he encontrado solución y con esto imagino que saldré.


Título: Re: Comando IF THEN
Publicado por: Eleкtro en 30 Septiembre 2017, 14:02 pm
Hola no sé si podríais ayudarme o si es posible usar el comando IF para lo que quiero hacer, Hay un achivo en mi Mediacenter que no sé porque System lo borra y vuelve a generarlo de nuevo creando otra vez todos los Thumbs.
Mi idea era crear un Bat que periodicamente mirara ese fichero para volcar otro y lo sustituyera.

Llevo años con el problema de este fichero que se recrea cuando quiere (imagino que es un bug de Windows Media Center) al que nunca he encontrado solución y con esto imagino que saldré.

Hola.

Aunque ya lo hayas solucionado pro otros medios, me gustaría decirte que en un principio soluciones como scripts / programador de tareas son innecesarias. Para evitar que el sistema operativo / una aplicaciónde terceros realice modificaciones sobre un archivo (como en este caso dices que primero ocurre una eliminación de archivo) puedes probar a modificarle el atributo del archivo a Solo Lectura (Read-Only por su nombre en Inglés), si eso no te funciona entonces modifica los permisos del archivo (y el propietario) para permitir la lectura y denegar la escritura y la eliminación, eso te resultará.

Saludos.


Título: Re: Comando IF THEN
Publicado por: teddy en 30 Septiembre 2017, 14:08 pm
La solución de cambiar los permisos no sirven, ya lo intenté. Es system quien modifica el fichero y aunque se ponga como sólo lectura o quite todos los permisos a system o incluso borre el usuario system, lo vuelve a recrear. Es algo que hace el kernel de windows. De todas maneras  gracias