Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Батник имеющий лимит запусков по дням??? (http://forum.oszone.net/showthread.php?t=151225)

Anarasius 22-09-2009 23:48 1225127

Батник имеющий лимит запусков по дням???
 
Уважаемые Батотцы.
Нужен скрипт который имел лимит запусков по дням, т.е. я его запустили (или написал) 20 сентября, надо что бы 20 октября он перестал запускаться, очень важно что бы он записывал день в txt или ini . Я уже находил похожую тему на форуме, но там массивный скрипт который сохраняет в реестр.

amel27 23-09-2009 10:44 1225359

Anarasius, расхождение в месяцах считать не так сложно, как в днях/неделях
Код:

@Echo Off
SetLocal EnableExtensions

Set $INI=C:\TEST\config.txt

If Not Exist %$INI% GoTo FirstStart
For /F "UseBackQ" %%i In ("%$INI%") Do If %DATE% GEQ %%i Exit /B 1

Echo Тут батник что-то должен делать...

Exit /B 0

:FirstStart

Set $Y=%DATE:~6,4%
If "%DATE:~3,1%"=="0" (Set $M=%DATE:~4,1%) Else (Set $M=%DATE:~3,2%)
If %$M% EQU 12 (Set $M=1& Set /A $Y+=1) Else (Set /A $M+=1)

Echo %DATE:~,2%.%$M%.%$Y% >"%$INI%"


Anarasius 23-09-2009 23:25 1226073

зачем мне расхождение в процентах? Мне нужно чтобы батник тупо не запустился если прошло 30 дней

NiOl 24-09-2009 16:07 1226519

Anarasius, Вы можете хранить необходимые параметры непосредственно в самом батнике (например обратный счетчик запуска и т.д.). Вот для примера самомодифицырующийся батник, в переменной Last запоминается дата/время последнего вызова, в нее же сохраняется текущее время для следующего вызова - можно легко заменить значение на нужное:

Код:

@echo off
SetLocal EnableExtensions
SetLocal EnableDelayedExpansion
set Last=FirstStart
set chk=set Last=%Last%
set D=%Date:~6,4%%Date:~3,2%%Date:~0,2%%time::=%
set D=%D:~0,-3%
if exist %D%.tmp del /F %D%.tmp
for /F "usebackq tokens=* delims=" %%T in ("%0") do if "%%T"=="%chk%" (Echo set Last=%D%>>%D%.tmp
) else Echo %%T>>%D%.tmp
start /min %ComSpec% /c "xcopy %D%.tmp %0 /R /Y && del /f %D%.tmp"
rem Далее Основной код, В переменной %Last% - предыдущее значение, в %D% - текущее (дата/время)



Время: 05:21.

Время: 05:21.
© OSzone.net 2001-