Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка времени создания файла и его запуск / 14 сообщений из 14, страница 1 из 1
30.01.2006, 15:04
    #33511038
loxmatiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
День бобрый!

Нужно периодически запускать файл xxx.bat с помощью шедулера, но
только в том случае если он был создан в последние три минуты, например.

Посоветуйте как это сделать?
...
Рейтинг: 0 / 0
30.01.2006, 15:48
    #33511203
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
А почему именно шедулером?
Пусть та прога, которая пересоздает батник, сразу его и запускает.
...
Рейтинг: 0 / 0
30.01.2006, 16:01
    #33511253
loxmatiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
можно и так
главное шоб она не запускала батник если он старше 3 минут от роду
...
Рейтинг: 0 / 0
30.01.2006, 16:20
    #33511338
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
Либо писать программу на C, либо


Process A - раз в три минуты по щедулеру
Код: plaintext
1.
2.
rem Раз в три минуты сбрасываем аттрибут архива для файла:-
attrib -A %WORKING_DIRECTORY%\xxx.bat


Process B - выполняем файл без аттрибута архива
Код: plaintext
1.
2.
3.
echo echo Hi > yyy.bat
xcopy /M /Y %WORKING_DIRECTORY%\xxx.bat yyy.bat
yyy.bat
...
Рейтинг: 0 / 0
30.01.2006, 18:01
    #33511693
loxmatiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
как это примерно будет выглядить на С

эх, много прошу
...
Рейтинг: 0 / 0
30.01.2006, 18:52
    #33511804
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#include <sys/stat.h>
#include <stdio.h>
#include <sys/timeb.h>

#define ERROR0 "ERROR: Unspecified file name\nUsage: %s <file_name>.\n"
#define ERROR1 "ERROR: Can't stat the file '%s'.\n"
#define ERROR2 "ERROR: Can't stat retrive current time.\n"
#define ERROR3 "ERROR: The argument is too large.\n"
#define COMMANDSIZE  2048 
#define TIMEOUT  3 * 60 
#define PATTERN "cmd /c %s"

int main (int argc, char **argv) {
  struct stat statinfo;
  time_t currenttime;
  time_t diff;
  char buffer[COMMANDSIZE];

  if (argc< 2  || !argv[ 1 ] || !*argv[ 1 ]) {
    fprintf(stderr, ERROR0, argv[ 0 ]);
    return  1 ;
  }

  if (stat(argv[ 1 ], &statinfo)) {
    fprintf(stderr, ERROR1, argv[ 1 ]);
    return  2 ;
  }
  if ((diff = (time(& currenttime) - statinfo.st_mtime)) < TIMEOUT) {
    if ((strlen(argv[ 1 ]) + strlen(PATTERN)+ 1 ) > COMMANDSIZE) {
      fprintf(stderr, ERROR3, argv[ 1 ]);
      return  4 ;
    }
    sprintf(buffer, PATTERN, argv[ 1 ]);
    return system(buffer);
  } else {
    printf("TIMEOUT: %d %d %d\n", statinfo.st_ctime, currenttime, diff);
    return  0 ;
  }
}
...
Рейтинг: 0 / 0
30.01.2006, 18:53
    #33511807
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
DarkSquid
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#include <sys/stat.h>
#include <stdio.h>
#include <sys/timeb.h>

#define ERROR0 "ERROR: Unspecified file name\nUsage: %s <file_name>.\n"
#define ERROR1 "ERROR: Can't stat the file '%s'.\n"
#define ERROR2 "ERROR: Can't stat retrive current time.\n"
#define ERROR3 "ERROR: The argument '%s' is too large.\n"
#define COMMANDSIZE  2048 
#define TIMEOUT  3 * 60 
#define PATTERN "cmd /c %s"

int main (int argc, char **argv) {
  struct stat statinfo;
  time_t currenttime;
  time_t diff;
  char buffer[COMMANDSIZE];

  if (argc< 2  || !argv[ 1 ] || !*argv[ 1 ]) {
    fprintf(stderr, ERROR0, argv[ 0 ]);
    return  1 ;
  }

  if (stat(argv[ 1 ], &statinfo)) {
    fprintf(stderr, ERROR1, argv[ 1 ]);
    return  2 ;
  }
  if ((diff = (time(& currenttime) - statinfo.st_mtime)) < TIMEOUT) {
    if ((strlen(argv[ 1 ]) + strlen(PATTERN)+ 1 ) > COMMANDSIZE) {
      fprintf(stderr, ERROR3, argv[ 1 ]);
      return  4 ;
    }
    sprintf(buffer, PATTERN, argv[ 1 ]);
    return system(buffer);
  } else {
    printf("TIMEOUT: %d %d %d\n", statinfo.mt_ctime, currenttime, diff);
    return  0 ;
  }
}
...
Рейтинг: 0 / 0
30.01.2006, 18:54
    #33511810
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
DarkSquid DarkSquid
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#include <sys/stat.h>
#include <stdio.h>
#include <sys/timeb.h>

#define ERROR0 "ERROR: Unspecified file name\nUsage: %s <file_name>.\n"
#define ERROR1 "ERROR: Can't stat the file '%s'.\n"
#define ERROR2 "ERROR: Can't stat retrive current time.\n"
#define ERROR3 "ERROR: The argument '%s' is too large.\n"
#define COMMANDSIZE  2048 
#define TIMEOUT  3 * 60 
#define PATTERN "cmd /c %s"

int main (int argc, char **argv) {
  struct stat statinfo;
  time_t currenttime;
  time_t diff;
  char buffer[COMMANDSIZE];

  if (argc< 2  || !argv[ 1 ] || !*argv[ 1 ]) {
    fprintf(stderr, ERROR0, argv[ 0 ]);
    return  1 ;
  }

  if (stat(argv[ 1 ], &statinfo)) {
    fprintf(stderr, ERROR1, argv[ 1 ]);
    return  2 ;
  }
  if ((diff = (time(& currenttime) - statinfo.st_mtime)) < TIMEOUT) {
    if ((strlen(argv[ 1 ]) + strlen(PATTERN)+ 1 ) > COMMANDSIZE) {
      fprintf(stderr, ERROR3, argv[ 1 ]);
      return  4 ;
    }
    sprintf(buffer, PATTERN, argv[ 1 ]);
    return system(buffer);
  } else {
    printf("TIMEOUT: %d %d %d\n", statinfo.st_mtime, currenttime, diff);
    return  0 ;
  }
}
...
Рейтинг: 0 / 0
30.01.2006, 19:00
    #33511823
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
Ну, в общем, идея понятна, я думаю....
...
Рейтинг: 0 / 0
31.01.2006, 14:02
    #33513349
loxmatiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
Вы уж простите темного,
это кусок какой-то проги или самостоятельно может жить?

просто непонятно, тут в передаются в main 2 каких-то аргумента argc, argv
откуда они берутся.
нужно запускать конкретный файл с конкретным названием,
можно его сразу в код вбить?
...
Рейтинг: 0 / 0
31.01.2006, 14:14
    #33513382
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
argc -- количество аргументов запуска, argv -- массив значений этих аргументов.
...
Рейтинг: 0 / 0
31.01.2006, 17:10
    #33513969
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
Это программа. Самостоятельная. Написана на Си.

Вот скомпилил -- смотри аттачмент.

Выполнять надо так:
executor.exe <имя_батника>
...
Рейтинг: 0 / 0
31.01.2006, 17:13
    #33513978
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
Можно и в код имя файла вбить, если удобно и можно.
...
Рейтинг: 0 / 0
31.01.2006, 18:12
    #33514229
loxmatiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка времени создания файла и его запуск
Спасибо DarkSquid, очень здорово выручил!
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка времени создания файла и его запуск / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]