Lo que he aprendido: programar tareas desde cmd en Windows

Siguiendo en mi cruzada de hacer que el ordenador trabaje mientras yo leo movidas en el interneto, he aprendido a “retrasar” una tarea en Windows sin usar el Programador de tareas: usar el comando timeout. Lo que hace es esperar un determinado tiempo antes de ejecutar el próximo comando. Es megaguay porque pone una cuenta atrás y parece que el ordenador va a explotar o algo. Es especialmente interesante para usarlo en un ordenador comunitario y no avisar a los demás de lo que andas tramando. Sí, soy malvada y me encanta.

Es tan fácil de usar como hacer:

timeout <T>

Donde <T> es el tiempo que tiene que esperar en segundos. Tenemos la opción de añadir /nobreak para que si alguien pulsa una tecla no se nos active la tarea.

De propinilla vamos a aprender cómo escribir comentarios en la línea de comandos de Windows:

  • Comentar línea completa: usamos ::
  • Comentario dentro de la línea: usamos & :: ya que el & es el comando separador de líneas, es decir, permite poner varios comandos en una única línea.

Lo he usado para programar un cálculo de Abaqus y aprovechar el ordenador por la noche. Para ello he creado un archivo cmd y he escrito lo siguiente en él:

:: Wait 10'
timeout 600 /nobreak 
abaqus job=<JOBNAME> interactive
pause & :: wait until keystroke

El pause del final es para que no se me cierre la ventanita al acabar y poder ver cómo ha ido el tema la mañana siguiente.

Nada más por hoy, estamos un poco más cerca de este señor 😛

Fuentes

Man de timeout

How to comment in Windows command line? en StackOverflow

10 Keys to Command Shell Scripting

Difference Between CMD and BAT

Anuncios

4 pensamientos en “Lo que he aprendido: programar tareas desde cmd en Windows

  1. victorhck

    Un “uptime” que me curré el otro día:

    @echo off
    
    set/a hor=0
    set/a min=0
    set/a seg=0
    
    :salto
    cls
    set/a seg=%seg% + 1
    
    echo. 
    echo llevo encendido: %hor% horas, %min% minutos, %seg% segundos
    
    :: sumar minutos
    if %seg%==60 (
      set/a seg=0
      set/a min=%min% + 1
    )
    
    :: sumar horas
    if %min%==60 (
      set/a min=0
      set/a hor=%hor% + 1
    )
    
    timeout /t 1 >nul
    goto salto
    
    exit
    

    con el código:
    timeout /t 1 > nul
    no se muestra ningún texto en pantalla…

    happy hacking! (msdos mierdoso)

    Responder

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s