Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-09-2008, 12:33   #1
lulup
Junior Member
 
L'Avatar di lulup
 
Iscritto dal: Oct 2007
Messaggi: 10
[dos] creare un bat per backup

salve

vorrei creare un .bat che mi copi i .sav dalla microsd ad una cartella sul desktop così : Desktop\Backup sav\10-09-08 e possibilmente anche un txt con tutti i file nella microsd

ho già provato a creare qualcosa ma con scarsi risultati potreste aiutarmi ?

PS:non sapevo dove postare questa discussione, qui va bene ?
lulup è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2008, 15:07   #2
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
i file bat non sono ne più ne meno che comandi dati a rotta di collo...quindi se sai copiare i file da console, usi lo stesso comando nel file bat e sei a posto

per esempio:

Codice:
copy d:\*.sav c:\programmi\backup\
copy d:\*.txt c:\programmi\backup\
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2008, 15:07   #3
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5162
più o meno così:

--------
CD\
X: (dove x è l'unità della microSD)
copy *.sav "C:\documents and settings\utente\desktop\nome cartella"
-------

Però ti conviene farti un programmino in C... fai prima.
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2008, 15:31   #4
lulup
Junior Member
 
L'Avatar di lulup
 
Iscritto dal: Oct 2007
Messaggi: 10
avevo optato per il bat perché il c non lo conosco per niente

comunque per i vostri consiglio vanno bene soltanto che dovrei andare a modificare ogni volta mettendo un nome alla cartella diverso non c'è un modo per farlo automaticamente ? mettendo %date% le / le considera come un'altra cartella
lulup è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2008, 16:11   #5
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Codice:
copy d:\*.sav c:\programmi\backup\%date /T%\"
così a me funge
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"

Ultima modifica di Oceans11 : 10-09-2008 alle 16:13.
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2008, 16:31   #6
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5162
Quote:
Originariamente inviato da lulup Guarda i messaggi
avevo optato per il bat perché il c non lo conosco per niente

comunque per i vostri consiglio vanno bene soltanto che dovrei andare a modificare ogni volta mettendo un nome alla cartella diverso non c'è un modo per farlo automaticamente ? mettendo %date% le / le considera come un'altra cartella
Se qualche tuo amico conosce il C puoi usare questo codice:

Quote:
#include "header.h"


extern "C" __declspec(dllexport)int run(char *directory)
{
struct tm *actual_date_time;
long ltime=0L;
int old_time=0;
int i, dir_lenght, slash_position, last_dot, mutsig_lenght, backup_lenght;
char dir[max_file_lenght];
char date_time[25];
char temp_char[20];
char original_project_path[max_file_lenght]={"\\\\?\\"}; // http://msdn2.microsoft.com/en-us/lib...55(VS.85).aspx
char project_name[max_file_lenght];
char backup_project_path[max_file_lenght]={"\\\\?\\"}; // http://msdn2.microsoft.com/en-us/lib...5(VS.85).aspx;
char mutsig_folder_path[max_file_lenght];
char folder_name[25]={"mutsig"};
char backup_folder_path[max_file_lenght]={"\\\\?\\"}; // http://msdn2.microsoft.com/en-us/lib...55(VS.85).aspx
char Xcopy[max_file_lenght]={"Xcopy.exe "};
char mutsig_dos[max_file_lenght];
char backup_dos[max_file_lenght];
char process_done[max_file_lenght]={" PLEASE WAIT, FILES ARE BEING COPIED... "};
char src[max_file_lenght];
char dst[max_file_lenght];
HWND Handle;


strcpy(dir, directory);
// Calculate actual date and local time.
time(&ltime);
actual_date_time=localtime(&ltime);

// Create the name of the backup folder.
sprintf(date_time, "%d", actual_date_time->tm_year+1900);
if ((actual_date_time->tm_mon+1)<10)
{
strcat(date_time, "0");
}
sprintf(temp_char, "%d", (actual_date_time->tm_mon+1));
strcat(date_time, temp_char);
if ((actual_date_time->tm_mday)<10)
{
strcat(date_time, "0");
}
sprintf(temp_char, "%d", actual_date_time->tm_mday);
strcat(date_time, temp_char);
strcat(date_time, "_");
if ((actual_date_time->tm_hour)<10)
{
strcat(date_time, "0");
}
sprintf(temp_char, "%d", actual_date_time->tm_hour);
strcat(date_time, temp_char);
strcat(date_time, "-");
if ((actual_date_time->tm_min)<10)
{
strcat(date_time, "0");
}
sprintf(temp_char, "%d", actual_date_time->tm_min);
strcat(date_time, temp_char);
strcat(date_time, "-");
if ((actual_date_time->tm_sec)<10)
{
strcat(date_time, "0");
}
sprintf(temp_char, "%d", actual_date_time->tm_sec);
strcat(date_time, temp_char);
strcat(folder_name, date_time);

// Find the path of the backup and mutsig folders.
dir_lenght=strlen(dir);
for(i=0; i<=dir_lenght; i++)
{
if(dir[i]=='\\')
{
slash_position=i;
}
}
for(i=0+4; i<slash_position+4; i++)
{
backup_folder_path[i]=dir[i-4];
}
backup_folder_path[i]='\0';
sprintf(mutsig_folder_path, "%s", backup_folder_path);
strcat(mutsig_folder_path, "\\Mutsig\\*.*");
strcat(backup_folder_path, "\\Backup\\");

// Copy the project file in the backup folder with the standard backup name.
for(i=0; i<(dir_lenght-slash_position); i++)
{
project_name[i]=dir[i+slash_position+1];
}
last_dot=0;
for(i=0; i<=(dir_lenght-slash_position); i++)
{
if((project_name[dir_lenght-slash_position-i]=='.')&&(last_dot==0))
{
project_name[dir_lenght-slash_position-i]='\0';
last_dot=1;
}
}
strcat(project_name, "_");
strcat(project_name, date_time);
strcat(project_name, ".apr");
sprintf(backup_project_path, "%s", backup_folder_path);
strcat(backup_project_path, project_name);
strcat(original_project_path, dir);
CopyFile(original_project_path, backup_project_path, TRUE);

// Create the backup folder in the backup dir.
strcat(backup_folder_path, folder_name);
CreateDirectory(backup_folder_path, NULL);

// Copy the files from the mutsig to the backup dir. Create the SHFILEOPSTRUCT and zero it.
strcat(mutsig_folder_path, "\0");
strcat(backup_folder_path, "\0");
memset(src, 0, sizeof(mutsig_folder_path));
memset(dst, 0, sizeof(backup_folder_path));
strcpy(src, mutsig_folder_path);
strcpy(dst, backup_folder_path);
SHFILEOPSTRUCT fos; // http://msdn2.microsoft.com/en-us/lib...95(VS.85).aspx
memset(&fos, 0, sizeof(fos));
// Set hwnd to the Handle property to make the application the owner of the progress dialog.
fos.hwnd = Handle;
// Specify a copy operation.
fos.wFunc = FO_COPY;
// Set the from and to parameters.
fos.pFrom = src;
fos.pTo = dst;
// Set the flags.
fos.fFlags = FOF_ALLOWUNDO|FOF_NOCONFIRMMKDIR|FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS|FOF_RENAMEONCOLLISION;
fos.lpszProgressTitle = process_done;
// Do it.
SHFileOperation(&fos);
Header.h

Quote:
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <conio.h>
#include <ctime>
#include <ctype.h>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <malloc.h>
#include <sstream>
#include <string.h>
#include <vector>
#include <windows.h>
#include <winsock.h>
#define max_file_lenght 16384 // Maximum number of characters in the name of one file/path.
using namespace std;


// Function that will be exported to create the dll.
extern "C" __declspec(dllexport)int run(char *directory);
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2008, 18:07   #7
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da Abadir_82
Però ti conviene farti un programmino in C... fai prima.
Le ultime parole famose....
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2008, 18:58   #8
lulup
Junior Member
 
L'Avatar di lulup
 
Iscritto dal: Oct 2007
Messaggi: 10
ma lol xD purtroppo non ho nessun amico che sa il C
lulup è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2008, 07:41   #9
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5162
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Le ultime parole famose....
Dai, non è lunghissimo, è solo che dovevo estrarre la data e costruire il path in una maniera un po' particolare... cmq usando le API di windows hai più controllo sul tipo e sul modo di copia
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2008, 10:29   #10
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
[@Abadir_82]

Io sono per l'utilizzo dello strumento più adatto

Dico cioè, che siccome te la cavi egregiamente con una sola riga di bat, io userei quello. Poi è anche logico che in C hai più controllo sul tipo e sul modo (come dici tu) e anche su un quadriliardo di altre cose

Cmq penso che il tuo suggerimento sia stato quantomeno didattico!!! (anche per me )
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2008, 10:53   #11
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5162
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
[@Abadir_82]

Io sono per l'utilizzo dello strumento più adatto

Dico cioè, che siccome te la cavi egregiamente con una sola riga di bat, io userei quello. Poi è anche logico che in C hai più controllo sul tipo e sul modo (come dici tu) e anche su un quadriliardo di altre cose

Cmq penso che il tuo suggerimento sia stato quantomeno didattico!!! (anche per me )
Ammetto che per quanto abbia usato DOS non avrei saputo costruire la cartella con la data attuale... quel %T proprio non lo conoscevo.

Sono felice che il software sia utile a qualcuno
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v