PDA

View Full Version : [Batch] Rinominare un file in base alla data


Gigiarum
15-05-2009, 21:09
Vorrei cercare di creare un file batch per creare un file con il nome determinato in base alla data corrente: ho un file "vuoto.xls" che ogni mese devo usare per creare dei nuovi file "gennaio.xls", "febbraio.xls", ...
Credo che una sequenza di istruzioni in un file .bat sia la cosa più semplice (vista anche l'"utonto" destinatario dell'applicazione) ma non riesco a creare uno switch in base alla data corrente letta dal comando date.
Potete darmi qualche consiglio?

skeleton
21-07-2009, 20:37
Ciao, ho visto adesso il tuo post perchè mi sono iscritto dopo che hai postato questa discussione...
Problema risolto, eccoti il codice:

if '%Date:~3,2%'=='01' (ren vuoto.xls "gennaio.xls") else if '%Date:~3,2%'=='02' (ren vuoto.xls "febbraio.xls") else if '%Date:~3,2%'=='03' (ren vuoto.xls "marzo.xls") else if '%Date:~3,2%'=='04' (ren vuoto.xls "aprile.xls") else if '%Date:~3,2%'=='05' (ren vuoto.xls "maggio.xls") else if '%Date:~3,2%'=='06' (ren vuoto.xls "giugno.xls") else if '%Date:~3,2%'=='07' (ren vuoto.xls "luglio.xls") else if '%Date:~3,2%'=='08' (ren vuoto.xls "agosto.xls") else if '%Date:~3,2%'=='09' (ren vuoto.xls "settembre.xls") else if '%Date:~3,2%'=='10' (ren vuoto.xls "ottobre.xls") else if '%Date:~3,2%'=='11' (ren vuoto.xls "novembre.xls") else if '%Date:~3,2%'=='12' (ren vuoto.xls "dicembre.xls")

Funziona:D ho provato!!!:read:
Ti spiego:
1. %Date:~3,2% indica il mese in cui ci troviamo
2. 01 fino a 12, sono i mesi, e a seconda del mese scritto in numeri, con l'if lo scrivi in lettere
3. Ho dato per scontato che tu apra il .bat nella stessa cartella in cui c'è vuoto.xls, se non è così per (ren vuoto.xls bla bla bla) dovrai scrivere anche il percorso in cui si trova l'.xls, ad esempio --> (ren "F:\vuoto.xls " bla bla bla): il percorso se contiene spazi tra una parola va tra ", ma io ti consiglio, anche perchè lo faccio anch'io di metterli sempre...

è stato un piacere aiutarti...

Gigiarum
23-07-2009, 10:28
Grazie mille! Era proprio il suggerimento che mi serviva e non riuscivo a trovare nel marasma di Google.
Ora però ti ancora un'altra cosa impossibile: oltre al mese so catturare anche l'anno ma a Gennaio dovrei rinomare il file vuoto.xls in "dicembre 'anno'.xls" dove anno è quello precedente a quello mostratomi dal comando Date. E' una cosa fattibile oppure mi conviene farlo a mano?

zuper
23-07-2009, 18:17
Grazie mille! Era proprio il suggerimento che mi serviva e non riuscivo a trovare nel marasma di Google.
Ora però ti ancora un'altra cosa impossibile: oltre al mese so catturare anche l'anno ma a Gennaio dovrei rinomare il file vuoto.xls in "dicembre 'anno'.xls" dove anno è quello precedente a quello mostratomi dal comando Date. E' una cosa fattibile oppure mi conviene farlo a mano?

prima del batch metti l'anno in variabile :)

set anno_corr=%Date:~6,4%
set /A anno_prec=%anno_corr%-1

quindi a sto punto

if '%Date:~3,2%'=='01' (ren vuoto.xls dicembre%anno_prec%.xls)

non ho ben capito se vuoi rinominare quello di dicembre prima....oppure a gennaio creare quello di dicembre.... cmq basta che adatti la sintassi come vuoi :)
anche se secondo me fai prima a mettere direttamente l'anno corrente quando lo crei ;)