Ejecutar Archivo Bat al iniciar sesion solo una vez al dia

Iniciado por 4RM4ND0 73P3D4, 8 Febrero 2013, 19:31 PM

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

4RM4ND0 73P3D4

Buen día Comunidad elHacker,

pido su apoyo para elaborar un bat que me permita ejecutar una aplicación (exe), al iniciar sesión, pero con la condición que sea una vez al día sin importar la hora de encendido del equipo. y que si en el trascurso del día se inicia nuevamente el equipo ya no permita su ejecución hasta el día siguiente..


Gracias..

Segadorfelix

Aca el code
Código (dos) [Seleccionar]

@echo off
set "UBIK=Acá la ubicación del .EXE"
IF exist %temp%\Archivosdetxt.txt goto:ET
set "DF=echo %date%>%temp%\Archivosdetxt.txt"
%DF%
start %UBIK%
exit /B
:ET
For /F %%X IN (%temp%\Archivosdetxt.txt) DO (set "fech=%%X")
IF ["%date%"]==["%fech%"] (exit) else (%DF%)
start %UBIK%

Se guarda en la carpeta de inicio.
Saludos.

4RM4ND0 73P3D4

#2
Muchas gracias por la ayuda, solo vi el incoveniente de que al dia siguiente ya no me permitia en el primer inicio de sesion la ejecucion del archivo exe. por o que le agrege un linea que me permitiera volver a ejecutarlo en el priemer inicio de sesion.

Me sirvio mucho Gracias..
Saludos..

Citar
Código (dos) [Seleccionar]
@echo off
:Inicia
set "UBIK=miApp.exe"
IF exist regDia.txt goto:ET
set "DF=echo %date%>regDia.txt"
%DF%
start %UBIK%
exit /B
:ET
For /F %%X IN (regDia.txt) DO (set "fech=%%X")
IF ["%date%"]==["%fech%"] (exit) else (goto:updateDate)
:updateDate
Del regDia.txt
goto:Inicia


Eleкtro

#3
EDITO: Antes de nada, fíjate en que Segadorfelix usa la carpeta temporal para guardar el registro de los días, si no modificas la carpeta en el script, cuando limpies los archivos temporales con el limpiador de Windows o CCleaner o etc.. perderás esa información.





Parece que por medio del programador de taréas de Windows es imposible crear una taréa con los requisitos que necesitas, así que hay que utilizar código.

Aquí tienes:

EDITO2: Si no dispones de Windows Vista/Seven elimina la parte de FORFILES.

Versión 1:
PD: El script normal, sin la creación de la taréa programada.

Código (dos) [Seleccionar]
@Echo OFF

Set "APP=C:\Test.bat"

(IF not exist "%WINDIR%\Task_%date:/=-%.task" (
(FSUTIL File CreateNew "%windir%\Task_%date:/=-%.task" 0
Start /B "" "%APP%") || (Exit /B 1)
) ELSE (
FORFILES /P "%WINDIR%" /M "*.task" /C "CMD /C If NOT @fdate EQU %DATE% (Del /Q "@path")"
Exit /B 0
))>NUL



Versión 2:
PD: El Script se autoagrega a las tareas programadas para iniciarse una vez al iniciar sesión de usuario.

Código (dos) [Seleccionar]
@Echo OFF

Set "APP=C:\Test.bat"

(
If NOT "%~1" EQU "/RUN" (
Copy /Y "%~0" "%WINDIR%\"
SCHTASKS /Create /TN "Batch Task" /TR "\"%WINDIR%\%~nx0\" /RUN" /SC ONLOGON /F
)

IF not exist "%WINDIR%\Task_%date:/=-%.task" (
(FSUTIL File CreateNew "%windir%\Task_%date:/=-%.task" 0
Start /B "" "%APP%") || (Exit /B 1)
) ELSE (
FORFILES /P "%WINDIR%" /M "*.task" /C "CMD /C If NOT @fdate EQU %DATE% (Del /Q "@path")"
Exit /B 0
)
)>NUL


Saludos.








r7pyrred


Eleкtro