Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Z ZERO en 14 Noviembre 2011, 00:31 am



Título: Pregunta sobre .bat
Publicado por: Z ZERO en 14 Noviembre 2011, 00:31 am
Como crear un bat que se ejecute y luego los comandos se activen 2 dias despues. Por ejemplo quiero formatear mi compu en 2 dias pero quiero crear un bat para que lo ejecute hoy y en dos dias mas se activen los comandos espero que me ayan entendido. gracias


Título: Re: Pregunta sobre .bat
Publicado por: Eleкtro en 14 Noviembre 2011, 10:26 am
Eso depende de lo complicado que quieras hacer el script...

Por ejemplo puedes crear una tarea programada en tu pc para que se inicie en dos días:


Código
  1. @echo off
  2.  
  3. For /F "tokens=1* delims=/" %%a in ('Echo %date%') do (
  4. Set dia=%%a
  5. set /a dia+=2
  6. )
  7. SCHTASKS /Create /SC MONTHLY /TN "Format" /TR "RUTA_DEL_BATCH.bat" /ST 01:00 /ET 23:50 /D %DIA% /F
  8. pause>nul



Te lo explico un poco mejor:

Con el FOR, comprueba el día del més y le suma 2 días. Esto tiene un fallo, si estás en el último día del més... Simplemente no lo ejecutes cuando sea el último(s) día del més xD. O si quieres mucha precisión, haz un archivo "calendario.txt" que contenga el calendario en este formato:

Mes       Días que tiene
11;            30
12;            31


Y yo te hago el resto xD si te gusta el método de mi código.


SCHTASKS

/Create = el switch para crear una tarea.

/SC MONTHLY = el modo de ejecutar la tarea (Dia, una vez, mensualmente, en un evento...) yo he puesto mensualmente porque es más simple para el FOR de antes, no importa porque una vez se formatee la tarea ya no existirá... xD

/TN "Format" = El título de la tarea.

/TR "RUTA_DEL_BATCH.bat" = el archivo que ha de ejecutar la tarea.

/ST 01:00 /ET 23:50 = Hora de inicio de la tarea y hora de parada. (La tarea, osea el batch, se ejecuta cada 10 minutos hasta la hora final)

/D %DIA% = Día del més que se ha de ejecutará la tarea.

/F = forzar/Sobreescribir una tarea existente.




Saludos.