Показать полную графическую версию : Батник имеющий лимит запусков по дням???
Anarasius
22-09-2009, 23:48
Уважаемые Батотцы.
Нужен скрипт который имел лимит запусков по дням, т.е. я его запустили (или написал) 20 сентября, надо что бы 20 октября он перестал запускаться, очень важно что бы он записывал день в txt или ini . Я уже находил похожую тему на форуме, но там массивный скрипт который сохраняет в реестр.
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
зачем мне расхождение в процентах? Мне нужно чтобы батник тупо не запустился если прошло 30 дней
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% - текущее (дата/время)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.