|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Roma
Messaggi: 739
|
batch per creare cartelle
beh... la cosa non è poi così semplice come il titolo suggerisce quindi finitela di sghignazzare!
quello che mi servirebbe è un batch che mi crea una cartella che ha per nome la data odierna. il comando md è scontato, ma come faccio ad impostare il valore della data??? credo che basti creare una variabile %data% e infilarci la data e poi fare md %data%. qualcuno puo aiutarmi per favore??? grazie tante.
__________________
AMD Phenom II X6 1055T @ 4GHz (285x14) - Dissi Corsair A70 - Asus M4N98TD EVO - 4x4092MB Corsair XMS3 @760Mhz - 2x Palit GeForce® GTX460 Sonic 1024@800/2000MHz - Zalman ZM-RS6F - HP w2207 - Ali LC Power Arkangel 850W - Cooler Master Haf 992 - più la solita mondezza che si trova in un pc ^^ |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2003
Città: Torino
Messaggi: 63
|
Ehi bel nick! Mi ricorda qualcosa...
Per il tuo problema, non so se sia facilmente risolvibile col batch, non è molto flessibile. Io avevo un problema simile (automatizzare un backup) e avevo realizzato un programmino in C che inserisse da solo la data nei nomi dei files. Se mi dai un attimo lo cerco e magari lo allego...
__________________
AMD K6 450 MHz, Epox MVP3G2 FSB 100 MHz, 320 MB RAM, HDD IBM 7200 60 GB, VooDoo III (è vecchia ma per diablo II va ancora bene |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2003
Città: Torino
Messaggi: 63
|
Ecco un programmino che riceve una stringa in input e esegue la stringa sostituendo i formati con la data. Ecco il codice:
Codice:
// QUESTO PROGRAMMA ACCETTA UNA STRINGA IN INGRESSO E LA ESEGUE
// METTENDO AL POSTO DI !Y L'ANNO, !m IL MESE, !d IL GIORNO
// PER ALTRI FORMATI FARE RIFERIMENTO AL MANUALE DI C.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#define BUFFER 1024
int sostituisci(char *stringa, int n, char cerca, char rimpiazza)
{
int i, k = 0;
for(i = 0; stringa[i] != '\0' && i < n; i++)
if(stringa[i] == cerca) {
stringa[i] = rimpiazza;
k++;
}
return k;
}
int main(void)
{
time_t ora, *p_ora;
struct tm data;
FILE *stream_in = stdin, *stream_out = stdout;
char str_in[256], str_out[256], *punt;
int len;
/* CONTROLLA CHE LA PRIMA RIGA VENGA LETTA INTERAMENTE */
if( (fgets(str_in, BUFFER, stream_in) != NULL) &&
( (len = strlen(str_in)) == 0 || str_in[len - 1] != '\n') ) {
printf("Errore durante lettura input: probabile perdita di informazioni.");
printf("La lunghezza massima della prima riga e' 255, le righe successive vengono scartate.\n");
return 5;
}
sostituisci(str_in, BUFFER, '!', '%');
/* LEGGE L'ORA */
if((ora = time(p_ora)) == NULL) {
printf("Errore durante la lettura dell'ora.\n");
return 10;
}
data = *localtime(&ora);
punt = str_out;
strftime(punt, 256, str_in, &data);
fprintf(stream_out, "%s\n", str_out);
system(str_out);
return EXIT_SUCCESS;
}
Immaginiamo che il programma compilato si chiami "data.exe" Il comando bat (DOS) per creare la cartella è: echo md !Y-!m-!d|data questo crea la cartella con la data nel formato giapponese (2003-11-26 che è comodo quando devi ordinare le cartelle per data). Se vuoi la data nel formato europeo il comando è: echo md !d-!m-!Y|data Ovviamente devi avere il programma nella stessa cartella (a meno che tu non inserisca il percorso del programma nella variabile di sistema %PATH%). Il tutto comunque dovrebbe funzionare. Se ti da problemi fammi sapere.
__________________
AMD K6 450 MHz, Epox MVP3G2 FSB 100 MHz, 320 MB RAM, HDD IBM 7200 60 GB, VooDoo III (è vecchia ma per diablo II va ancora bene |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:43.



















