Версия для печати

Борьба с недостатками

Оцените материал
(8 голосов)

Одним из недостатков BAT файлов является то, что в результате работы какой-то программы мы не можем получить ее результат, кроме кода возврата. Ну, например, мы хотим, чтобы при запуске BAT файла производилось резервное копирование в папочку. Это мы можем сделать, а вот как сделать так, чтобы имя папки формировалось в соответствии с текущей датой. Умея немного программировать для DOS это можно сделать. Напишем программу Times.exe, которая будет записывать в указанный файл текущую дату. Я использовал Borland C++ 3.1, Вы можете использовать все, что может делать программы в формате MS DOS. Вот код.

#include "stdio.h"
#include "process.h"
#include "FCNTL.H"
#include "string.h"
#include "io.h"

int main(int argc, char *argv[ ])
{
printf("First Steps Site(C) 2002\n");
if (argc==4)
{
int ifile;
int ofile;
int rez;
ifile=_open(argv[1],O_RDONLY);
if (ifile!=-1)
{
char buffer[255];
rez=read(ifile,buffer,254);
if (rez!=-1)
{
printf(argv[1]);
printf(" ");
printf(argv[2]);
printf(" ");
buffer[rez]=0;
printf(buffer);
printf("\n");
ofile=open(argv[2], O_CREAT | O_WRONLY | O_TRUNC);
if (ofile!=-1)
{
write(ofile,argv[3],strlen(argv[3]));
write(ofile," ",2);
write(ofile,buffer,strlen(buffer));
close(ofile);
}
else
{
printf("error create\n");
return 1;
}
}
else
{
printf("error read\n");
return 1;
}
}
else
{
printf("error open file \n");
return 1;
}
return 0;
}
else
{
printf("error parametrs\n");
return 1;
}
}

Сам код и готовый EXE находится в проекте. Использовать его достаточно легко, надо создавать BAT файл, в котором передается параметр.

times.exe times.txt

В результате работы будет создан текстовый файл, в котором находится текущая дата.

12_1.gif (3615 b)