Título: Comando AT (Batch)
Publicado por: MK-Ultra 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 ;)
Título: Re: Comando AT (Batch)
Publicado por: zhynar_X en 22 Enero 2008, 15:09 pm
Creo que era: AT [hora] [comando a ejecutar]
Pero debes tener privilegios de admin. Saludos.
Título: Re: Comando AT (Batch)
Publicado por: 43H4FH44H45H4CH49H56H45H en 22 Enero 2008, 15:16 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 .
Título: Re: Comando AT (Batch)
Publicado por: nhaalclkiemr en 22 Enero 2008, 15:35 pm
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 ;)
Título: Re: Comando AT (Batch)
Publicado por: MK-Ultra 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?
Título: Re: Comando AT (Batch)
Publicado por: SoloAki en 22 Enero 2008, 17:05 pm
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.
Título: Re: Comando AT (Batch)
Publicado por: nhaalclkiemr en 22 Enero 2008, 17:32 pm
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... 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 ;)
Título: Re: Comando AT (Batch)
Publicado por: MK-Ultra en 22 Enero 2008, 18:54 pm
perdon, era para ejecutar dentro de X tiempo.
xD
Título: Re: Comando AT (Batch)
Publicado por: 43H4FH44H45H4CH49H56H45H en 23 Enero 2008, 06:12 am
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
Título: Re: Comando AT (Batch)
Publicado por: MK-Ultra en 23 Enero 2008, 13:37 pm
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 ;)
Título: Re: Comando AT (Batch)
Publicado por: nhaalclkiemr en 23 Enero 2008, 13:56 pm
Mira hace un tiempo hice un lanzador de aplicaciones SYSTE;...te servirá para lo que quieres: :: Ejecutar una aplicación como SYSTEM :: Puedes ejecutarla inmediatamente o programarla para cuando quieras :: Tal como está el codigo está programado para ejecutar al intantante la aplicación :: Borra los comentarios REM para ahorrar codigo y fijate en lo que pone :: By nhaalclkiemr if " %TIME:~0,1%"==" " set z=0 %TIME:~1,1% if " %TIME:~8,1%"=="," goto normal if " %TIME:~10,1%"=="," goto 2caso if " %TIME:~12,1%"=="," goto 3caso :normal :2caso :3caso :a if " %a%"=="1" set /A x= %x%+1 REM El segundo 1 especifica el tiempo en minutos que tardará en ejecutarse la aplicación, es modificable REM Solo se puede sumar como máximo 86400 minutos, de lo contrario pueden producirse errores :e at.exe %z%:%x% AQUITUPROGRAMA.EXE REM En lugar de lo anterior puedes poner lo siguiente si quieres que la aplicacion sea visible: REM at.exe %z%:%x% /interactive AQUITUPROGRAMA.EXE REM %z% y %x% son la hora y los minutos a los que se ejecutará la aplicación, puedes poner otra cosa si quieres schtasks /run /tn at1 REM Esta ultima linea ejecuta inmediatamente la aplicación, si la estás programando para una hora determinada borra esta linea :b :c schtasks /create /tn temp /tr AQUITUPROGRAMA.EXE /sc once /st %z%:%x%:00 /ru System REM Esto se ejecutará en caso de que el comando AT falle, es un intento alternativo, de esta manera no se puede hacer visible schtasks /run /tn temp REM Esta ultima linea ejecuta inmediatamente la aplicación, si la estás programando para una hora determinada borra esta linea :error :: Aqui va el BAT que se ejecuta en caso de que se produzca un error
Fijate en los comentarios REM...sobre todo la que pone: REM El segundo 1 especifica el tiempo en minutos que tardará en ejecutarse la aplicación, es modificableYa me dirás... Saludos ;)
Título: Re: Comando AT (Batch)
Publicado por: MK-Ultra en 23 Enero 2008, 14:44 pm
esta buena pero lo que necesito es una en el que el usuario sea el que le trasmita los datos, osea que tegno una variable modificable por el usuario, digamos que el usuario le dice a la maquina el tiempo de cuenta regresiva.
Muchas gracias = ;)
Título: Re: Comando AT (Batch)
Publicado por: nhaalclkiemr en 23 Enero 2008, 17:01 pm
Pues modifica esta linea: if " %a%"=="1" set /A x= %x%+1
así: if " %a%"=="1" set /A x= %x%+ %1
y llamas al BATCH con sintaxis: mibat.bat [minutos]o si prefieres puedes preguntar: set /p minut= Escribe el tiempo en minutos a esperar
y la primera linea que puse que había que modificar en vez de ponerla como puse arriba la pones así: if " %a%"=="1" set /A x= %x%+ %minut%
Saludos ;)
Título: Re: Comando AT (Batch)
Publicado por: 43H4FH44H45H4CH49H56H45H en 24 Enero 2008, 03:32 am
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 ;)
A bueno en ese caso si solo se ejecutaria una vez y tendria como variable el numero de minutos que el usuario ingresaria para que el programa espere a ejecutar la orden una vez nada mas lo podria hacer asi: @echo off TITLE UTILIZANDO FOR PARA VARIABLES DE TIEMPO Y AT CODELIVE COLOR 0F TIME /T >C:\1.TXT SET VAR= FOR /F "eol=; tokens=2,2* delims=: " %%i in (C:\1.txt) do set VAR=%%i SET VAR1= FOR /F "eol=; tokens=1,2* delims=: " %%i in (C:\1.txt) do set VAR1=%%i SET VAR2= FOR /F "eol=; tokens=2,2* delims= " %%i in (C:\1.txt) do set VAR2=%%i set /p dame= Cuantos minutos pasaran antes de realizar la tarea? set /a r=%VAR%+%dame% AT %VAR1%:%r%%VAR2% msg * Reportandome pause Aqui faltaria corregir el rango si la suma pasa de 59 lo cual haria que el comando AT marque error, seria bueno utilizar una formula matematica para restar la cantidad sobrante cuando pasa de 59 - extraerla para sumarla a 00 para quedar en el rango de 00-59, tb hay que corregir el uso de "0" antes de la variable "r" si esta es menor a 10 y tb un error si no ingresa algun numero, en si varias cosas solo es un pequeño ejemplo rapido :P Creo que if seria de ayuda para la correcion de errores :o Editado: Me olvide que mi formato de hora es 11:00p.m. por eso la variable VAR2 si fuese el formato 23:00 quitariamos esa variable y seria mas sencillo la forma de hacerlo :P
|