Войти

Показать полную графическую версию : [решено] Подскажите как получить время изменения файла -15 минут


osp2008
29-07-2010, 11:30
Подскажите как присвоить переменной (set a=) время изменения файла (допустим file.txt) -15 минут

osp2008
29-07-2010, 11:31
"set a ="

deepred
29-07-2010, 12:46
osp2008,

Echo off & Chcp 1251

:loop
Set $SRC="F:\info.txt" & rem твой файл
for /f %%a in (%$SRC%) do call :check "%%~ta"

:check
set $in=%~1
set $tr=%$in:~14,2% & set $tm=%time:~3,2%

if %$tm% lss 10 set $tm=%time:~4,1%
if %$tr% lss 10 set $tr=%$in:~15,1%

set /a "$ch= %$tm% - %$tr%"
If %$ch% LSS 0 set /a $ch=60-(%$ch%*(-1))

if /i %$ch% GEQ 30 net send "имя" "Warnig - connection was fall"
if /i %$ch% GEQ 15 ((
taskkill /f /im fm.exe
ping -n 5 localhost>nul
start /b fm.exe))

ping -n 100 localhost>nul & rem 100 - задержка в цикле
goto loop

osp2008
29-07-2010, 13:01
Если можно просто получить переменная=атрибут изменения файла -15 минут
просто присвоить это значение

зачем делать цикл и проверять? если можно присвоить значение и просто
set a=%time:~0,5%
set aa=последние изменение файла -15 минут
if a>aa then то что хочу сделать

osp2008
29-07-2010, 13:46
просто переменная "aa" будет использоваться в дальнейшем

gora
29-07-2010, 14:09
set aa=последние изменение файла -15 минут »
Если я правильно понял, то из значения минут последнего_изменения_файла нужно вычесть 15 минут и результат записать в переменную? А сколько по Вашему должно получится в этой переменной, если значение минут последнего_изменения_файла будет меньше 15, например, 10? Значение -5 (минус 5) или у Вас другая арифметика дальше используется?

osp2008
29-07-2010, 14:59
оки буду думать

мне просто подскажите команду как получить атрибут время изменения файла дальше я сам разберусь как с ним поступить

gora
29-07-2010, 15:04
подскажите команду как получить атрибут время изменения файла »
@Echo Off
Rem Здесь указан файл
Set fl=c:\Temp\folder.txt
For %%i In ("%fl%") Do Set lm=%%~ti
Rem Можете раскомментировать следующую строку для тестов
Rem Set lm=29.07.2010 13:09
Echo lm=%lm%
Rem Число 15 в следующей строке - это Ваши 15 минут
Set /a aa=1%lm:~14,2%-100-15
Echo aa=%aa%
Rem Следующая строка для приведения минут к "человеческому" виду (от 0 до 59)
If %aa% LSS 0 Set /a aa+=60
Echo aa=%aa%
Pause
Exit




© OSzone.net 2001-2012