Comando IF THEN

Iniciado por teddy, 29 Septiembre 2017, 23:57 PM

0 Miembros y 1 Visitante están viendo este tema.

teddy

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

**Aincrad**

#1
listo , asi de facil:  ;D

Código (bash) [Seleccionar]

@echo off
goto s
:k
REM Create By **Aincrad**
echo/
ECHO RECUERDA QUE :
echo/
ECHO 1000 BYTES = 1 KB
ECHO 1000 KB    = 1 MB
::::::::::::::::::::::
:s
::::::::::::::::::::::
@echo off
set strdir="%appdata%\local\Microsoft\ehome\ehthumbs_vista.db"
set dir="c:\ehthumbs_vista.db"

call :size %strdir%
  (
     pause>nul
             exit   )


:size
if ["%~z1"] GTR ["100000"] (
echo Es mayor de 100.000 byte, tiene %~z1
exit
) else (
echo Es menor de 100.000 byte, tiene %~z1
copy "%dir%" "%strdir%
exit
)
goto:eof


                                      COMENTA SI TE FUNCIONO  ;-)




teddy

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

**Aincrad**

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





teddy

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é.

Eleкtro

#5
Cita de: 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.

Cita de: teddy en 30 Septiembre 2017, 02:48 AM
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.








teddy

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