Шаг 12 - Борьба с недостатками

Одним из недостатков 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)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 21.01.2002