Comando AT (Batch)

Iniciado por MK-Ultra, 22 Enero 2008, 15:00 PM

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

MK-Ultra

Buenas, queria saber si alguien me pudiese explicar como se usa el comando AT para si quiero hacer algo cada X tiempo ( solo minutos, sin necesidad de usar dias ) xq la verdad de la ayuda de batch no entendi nada  ;D

Muchas gracias ;)
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

zhynar_X

Creo que era:


AT [hora] [comando a ejecutar]


Pero debes tener privilegios de admin.
Saludos.
Me he creado un blog:
http://zhynar.blogspot.com  Aver si os gusta! ;)


Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo)

43H4FH44H45H4CH49H56H45H

Cita de: ^Arkangel^ en 22 Enero 2008, 15:00 PM
Buenas, queria saber si alguien me pudiese explicar como se usa el comando AT para si quiero hacer algo cada X tiempo ( solo minutos, sin necesidad de usar dias ) xq la verdad de la ayuda de batch no entendi nada  ;D

Muchas gracias ;)

Si necesitas en minutos llenarias para solo un dia el programador de tareas, a  mi parecer seria mejor utilizar goto en un bucle y definir el tiempo de espera con Ping para volver a realizar el bucle .

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

nhaalclkiemr

mirate el comando schtasks.exe (no lo hay en Win XP Home Edition...)

Para la sintaxis usa la ayuda de Windows o escribe en la consola schtasks.exe /? o mejor ya directamente schtasks.exe /create /?

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

MK-Ultra

y como seria la sintaxys si yo quisiera que con el schtasks.exe  se ejecutase X commando cada X tiempo pero solo 1 vez, me  explico?
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

SoloAki

Schtasks mm pero osea lo que hace es programar algo en las tareas programadas. El at nunca lo entendi bien pero de lo que estoy seguro es que, cuando lo hagas lo va a ejecutar el dia siguiente. Ademas si no tienes privilegios vas a tener que aprender de algun post sobre escala de privilegios. Lo mejor si el otro no es Admin es jugar con el registro pero antes desactivando un servicio que no me acuerdo cual era. Sino como dice un usuario de aca arriba bucle lo que mejor podes hacer.

nhaalclkiemr

puff estais confundiendo cosas...empecemos:

Primero diferenciar AT.EXE de SCHTASKS.EXE...

AT.EXE es derivado de SCHTASKS.EXE...utiliza la cuenta de servicios AT (por defecto configurada para que se ejecute con privilegios SYSTEM) para crear una tarea programada...su sintaxis es reducida:

at.exe /?

El comando AT programa la ejecución de comandos y programas en un equipo a
una hora y fecha especificadas. El servicio de programación debe estar en
ejecución para utilizar el comando AT.

AT [\\equipo] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\equipo] hora [/INTERACTIVE]
    [ /EVERY:fecha[,...] | /NEXT:fecha[,...]] "comando"

\\equipo         Especifica un equipo remoto. Si se omite este
                   parámetro, los comandos se programan en el equipo
                   local.
id                 Es un número de identificación asignado al comando
                   programado.
/delete            Cancela un comando programado. Si se omite id, se
                   cancelarán todos los comandos programados en el equipo.
/yes               Se usa con el comando de cancelación de todos los
                   trabajos cuando no se desea ninguna confirmación.
/interactive       Permite a la tarea interactuar con el escritorio del
                   usuario cuya sesión coincide con el momento de
                   ejecución de la tarea.
/every:fecha[,...] Ejecuta el comando cada día de la semana o mes
                   especificado. Si se omite la fecha, se asume que es el
                   día actual del mes.

/next:fecha[,...]  Ejecuta el comando especificado la próxima vez que
                   aparezca ese día (por ejemplo, el próximo jueves). Si
                   se omite la fecha, se asume que es el día actual del
                   mes.
"comando"          Es el comando de Windows NT o programa por lotes que se
                   va a ejecutar.



El comando SCHTASKS.EXE es más amplio...para crear una nueva tarea necesitas ejecutar schtasks.exe /create XXX :

schtasks.exe /create /?

SCHTASKS /Create [/S sistema [/U usuario [/P contraseña]]]
    [/RU nombre_usuario [/RP contraseña]] /SC programa [/MO modificador] [/D día
]
    [/I tiempo_inactividad] /TN nombre_tarea /TR ejecutar_tarea [/ST hora_inicio
] [/M meses]
    [/SD fecha_inicio] [/ED fecha_fin].

Descripción:
   Habilita a un administrador para que cree tareas programadas
    en un sistema local o remoto.

Lista de parámetros:
    /S           system            Especifica el sistema remoto
                                   al que conectarse. Si se omite el parámetro
                                   del sistema, el predeterminado es el sistema
                                   local.

    /U           username          Especifica el contexto de usuario en
                                   el que el comando debe ejecutarse.

    /P        contraseña           Especifica la contraseña para el
                                   contexto de usuario dado.

    /RU          usuario           Especifica la cuenta de usuario (contexto
                                   de usuario) en la que se ejecuta la tarea.
                                   Para la cuenta del sistema, son valores
                                   válidos "", "NT AUTHORITY\SYSTEM" o
                                   "SYSTEM".

    /RP          contraseña        Especifica la contraseña para el usuario.
                                   Para solicitar la contraseña, el valor
                                   debe ser "*" o ninguno.
                                   La contraseña no tendrá efecto en la
                                   Cuenta del sistema.

    /SC          programación      Especifica la frecuencia del programa.
                                   Tipos de programas válidos: MINUTE, HOURLY,
                                   DAILY, WEEKLY, MONTHLY, ONCE,
                                   ONSTART, ONLOGON, ONIDLE.

    /MO          modificador       Afina el tipo de programación para permitir
                                   un control más preciso de la programación.
                                   Los valores válidos se listan en la sección
                                   "Modificadores", más abajo.

    /D           días              Especifica el día de la semana en el que
                                   se ejecuta la tarea. Valores válidos: MON,
                                   TUE, WED, THU, FRI, SAT, SUN y para
                                   programaciones mensuales 1 - 31 (días del
                                   mes).

    /M           meses             Especifica los meses del año.
                                   El valor predeterminado es siempre el
                                   primer día del mes. Valores válidos: JAN,
                                   FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP,
                                   OCT, NOV, DEC.

    /I           inactividad       Especifica la cantidad de tiempo inactivo
                                   que debe pasar antes de ejecutar una tarea
                                   ONIDLE programada.
                                   Intervalo válido: 1 - 999 minutos.

    /TN          tarea             Especifica un nombre que identifica de
                                   manera exclusiva a esta tarea programada.

    /TR          ejecución         Especifica la ruta y nombre de archivo del
                                   programa que ejecutará esta tarea
                                   programada.
                                   Ejemplo: C:\windows\system32\calc.exe

    /ST          hora_inicio       Especifica la hora para ejecutar la tarea.
                                   el formato de hora es HH:MM:SS (24 horas)
                                   por ejemplo, 14:30:00 es el equivalente
                                   de 2:30 PM.

    /SD          fecha_inicio      Especifica la fecha de la primera ejecución
                                   de la tarea. El formato es
                                   "dd/mm/yyyy".

    /ED          fecha_fin            Especifica la fecha final para
                                   la ejecución de la tarea. El formato es
                                   "dd/mm/yyyy".

    /?                   Muestra esta ayuda/uso.

Modificadores: valores válidos para el modificador /MO por tipo de programación:

    MINUTE:  1 - 1439 minutos.
    HOURLY:  1 - 23 horas.
    DAILY:   1 - 365 días.
    WEEKLY:  semanas 1 - 52.
    ONCE:    sin modificadores.
    ONSTART: sin modificadores.
    ONLOGON: sin modificadores.
    ONIDLE:  sin modificadores.
    MONTHLY: 1 - 12, o
             FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY.

Ejemplos:
    SCHTASKS /Create /S sistema /U usuario /P contraseña /RU como_usuario
             /RP contraseña_como_usuario /SC HOURLY /TN prueba1 /TR notepad
    SCHTASKS /Create /S sistema /U dominio\usuario /P contraseña /SC MINUTE
             /MO 5 /TN rtest2 /TR calc.exe /ST 12:00:00
             /SD 15/09/2001 /ED 15/09/2001 /RU como_usuario /RP
    SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN game
             /TR c:\windows\system32\freecell
    SCHTASKS /Create /S sistema /U usuario /P contraseña /RU como_usuario
             /RP contraseña_como_usuario /SC WEEKLY /TN prueba1 /TR notepad.exe
    SCHTASKS /Create /S sistema /U dominio\usuario /P contraseña /SC MINUTE
             /MO 5 /TN test2 /TR c:\windows\system32\notepad.exe
             /ST 18:30:00 /RU como_usuario /RP *
    SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN celda
             /TR c:\windows\system32\freecell /RU runasuser


Y como veis tu puedes elegir el usuario...asi k aunke no tengas privilegios puedes establecer una tarea programada para tu usuario (siempre y cuando tenga contraseña) y la pongas...si la cuenta no tiene contraseña no podrás hacerlo...AT sin privilegios Admin no te sirve para nada...

Pero weno como supongo que será para ejecutar en otro ordenador lo mejor es usar el usuario SYSTEM...no tendrás que poner ninguna contraseña y tu aplicacion no se verá cuando se ejecute pero tendrás que tener privilegios Admin...

Cita de: ^Arkangel^ en 22 Enero 2008, 16:59 PM
y como seria la sintaxys si yo quisiera que con el schtasks.exe  se ejecutase X commando cada X tiempo pero solo 1 vez, me  explico?

Te estas contradiciendo :xD si quieres "ejecutar algo cada X tiempo" tiene que ser un numero superior de una vez...pork si solo es una vez ya sería "ejecutar algo dentro de X tiempo"...explicate mejor...di mas concretamente que quieres hacer y te pogno como sería...

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

MK-Ultra

perdon, era para ejecutar dentro de X tiempo.

xD
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

43H4FH44H45H4CH49H56H45H

Espero que este code te ayude, pero solo sirve para rango de 00 a 59 minutos falta colocar un control para que si el minuto pase de 59 coloque una variable a 0 y sume lo que resta ademas de subir la hora.

Pruebalo colocando en "Cada cuantos minutos deseas que se ejecute? " valores que multiplicados por "Cuantas veces?  " devuelvan un resultado menor a 59 para que veas el funcionamiento.

@echo off
title PROGRAMANDO TAREAS CON AT BY CODELIVE
color 1F
set/p cmin= Cada cuantos minutos deseas que se ejecute? 
set/p veces= Cuantas veces? 
set/p hora= Hora de Inicio?   
set/p minutos= Minuto de Inicio?   
set/a a=0
:bucle
if %a%==%veces% goto fin
set/a re=%cmin%*a
set/a min=%minutos%+%re%
if %min% GTR 59 msg * Error && goto error
AT %hora%:%min% msg * Reportandome%a%veces
echo AT %hora%:%min% msg * Reportandome%a%veces>>c:\1.txt

Set/a a=a+1
goto bucle
:error
TITLE ERROR
cls
color 0F
echo EL PROGRAMA SOLO ESTA HECHO PARA UNA HORA
echo MEJORA EL PROGRAMA MODIFICANDO EN RANGO DE LA HORA SI SE PASAN
echo LOS MINUTOS DE 59
pause>nul
exit

:fin
echo SE PROGRAMARON LAS TAREAS CON EXITO
start C:\1.TXT
echo PULSA UNA TECLA PARA SALIR
pause>nul
exit

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

MK-Ultra

El programa seria mas o menos como que el usuario ingresa X minutos y apartir de ese tiempo cuando terminen esos X minutos se ejecute un comando.

Me explico?

PD: = estubo bueno el programa anterior pero no era exactamente lo que estaba buscando. Gracias de todos modos ;)
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ