powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка времени создания файла и его запуск
14 сообщений из 14, страница 1 из 1
Проверка времени создания файла и его запуск
    #33511038
loxmatiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День бобрый!

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

Посоветуйте как это сделать?
...
Рейтинг: 0 / 0
Проверка времени создания файла и его запуск
    #33511203
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему именно шедулером?
Пусть та прога, которая пересоздает батник, сразу его и запускает.
...
Рейтинг: 0 / 0
Проверка времени создания файла и его запуск
    #33511253
loxmatiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно и так
главное шоб она не запускала батник если он старше 3 минут от роду
...
Рейтинг: 0 / 0
Проверка времени создания файла и его запуск
    #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
Проверка времени создания файла и его запуск
    #33511693
loxmatiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как это примерно будет выглядить на С

эх, много прошу
...
Рейтинг: 0 / 0
Проверка времени создания файла и его запуск
    #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
Проверка времени создания файла и его запуск
    #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
Проверка времени создания файла и его запуск
    #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
Проверка времени создания файла и его запуск
    #33511823
Фотография DarkSquid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, в общем, идея понятна, я думаю....
...
Рейтинг: 0 / 0
Проверка времени создания файла и его запуск
    #33513349
loxmatiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы уж простите темного,
это кусок какой-то проги или самостоятельно может жить?

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

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

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


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