//function: database autocreate winrar file with window plan-task
//*.data file into *.rar
//filename:autorar.cpp
//anthor:chinayaosir
//winrar a command format
//winrar a <rarfilepath> <databasefilepath>
//tools:vc++6.0
//database autoback pls see
//my article Autobackup sybase DataBase(操作系统at指令+批处理文件+SQL文件+存储过程)
#include <tchar.h>
#include <io.h>
#include <time.h>
#include <iostream>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
char sdate[255]; //save current date
char db_filepath[255];//save database dat filepath
char rar_filepath[255]; //save rar filepath
char rar_command_str[255]; //save winrar command words
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) ); //create si
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) ); //create pi
_strdate(sdate); //today save into sdate with mm/dd/yy format
strcpy(db_filepath,"f://auto_backup//G20"); //set db_filepath="f://auto_backup//G20"
strncat(db_filepath,sdate+6,2);//add year into db_filepath with mm/dd/yy date
strcat(db_filepath,"_");//add '_' char into db_filepath after yyyy
//add month into db_filepath
if (sdate[0]=='0')
strncat(db_filepath,sdate+1,1);
else
strncat(db_filepath,sdate,2);
strcat(db_filepath,"_");//add '_' char into db_filepath after m/mm
//add day into db_filepath
if (sdate[3]=='0')
strncat(db_filepath,sdate+4,1);
else
strncat(db_filepath,sdate+3,2);
//set rar and db filepath with
strcpy(rar_filepath,db_filepath);
strcat(db_filepath,".dat");
strcat(rar_filepath,".rar");
//set winrar command string
strcpy(rar_command_str,"winrar a ");
strcat(rar_command_str,rar_filepath);
strcat(rar_command_str," ");
strcat(rar_command_str,db_filepath);
CreateProcess
( NULL, // No module name (use command line).
rar_command_str,// Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi // Pointer to PROCESS_INFORMATION structure.
);
return 0;
}