|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 358
|
Modifica nome file con data
Ciao a tutti,
per lavoro ho bisogno ogni mese di dover rinominare oltre 500 file dislocati in diverse cartelle. Ilnome del file e' del tipo "pippo 0608.xls" da rinominare in "pippo 0708.xls" (quindi con il cambio data per il mese di riferimento). Ho provato a dare da dos (entrando nella cartella specifica) il comando: Codice:
ren *0608.xls *0708.xls Dove sbaglio? Esiste un modo per rinominarlo in "pippo 0708.xls"? Ciao e grazie
__________________
Il mio primo mac: Macbook Pro 13"; Intel Core 2 Duo a 2,4GHz; HDD 250GB a 5400 giri/min; NVIDIA GeForce 320M; 4 GB RAM |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 358
|
Ho risolto rinominando i vari file in "pippo_0608.xls"
in questo modo cambia correttamente l'ultima parte dell'estensione. Adesso vorrei creare un file batch con i vari percorsi che mi chieda come voglio trasformarlo Nel senso, mi chiede quale parte deve essere modificata (0608.xls) e in quale (0708.xls) non so se sono stato chiaro ciao
__________________
Il mio primo mac: Macbook Pro 13"; Intel Core 2 Duo a 2,4GHz; HDD 250GB a 5400 giri/min; NVIDIA GeForce 320M; 4 GB RAM |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jan 2007
Città: quel ramo del lago di como, che volge a mezzogiorno... ^^
Messaggi: 19625
|
una volta ero bravo in batch, ora so darti solo le grandi linee...
Codice:
:inizio ECHO Ridenominazione guidata lista di file in %~f1 ECHO --------------------------------- ECHO Opzioni disponibili: ECHO. ECHO 1)Rinominare abcde.* ECHO 2)Rinominare *.abc ECHO 3)Rinominare *abc.* ECHO 4)Rinominare abc*.* ECHO. ECHO. @ECHO off set scelta= set /p scelta=Specificate l'opzione desiderata e premete INVIO: if not '%scelta%'=='' set scelta=%scelta:~0,1% if '%scelta%'=='1' goto rin1 if '%scelta%'=='2' goto rin2 if '%scelta%'=='3' goto rin3 if '%scelta%'=='4' goto rin4 ECHO. ECHO "%scelta%" non e' un numero di opzione valido, riprova. ECHO. goto inizio :rin1 ECHO. ECHO Rinominare abcde.* ECHO. set originale= set /p originale=Digita la stringa dei file originali e premi INVIO: set modificare= set /p modificare=Digita la stringa di modifica e premi INVIO: ren %originale%.* %modificare%.* goto end :rin2 ECHO. ECHO Rinominare *.abc ECHO. set originale= set /p originale=Digita l'estensione originale e premi INVIO: set modificare= set /p modificare=Digita l'estensione modificata e premi INVIO: ren *.%originale% *.%modificare% goto end :rin3 ECHO. ECHO Rinominare *abcde.* ECHO. set originale= set /p originale=Digita la stringa dei file originali e premi INVIO: set modificare= set /p modificare=Digita la stringa di modifica e premi INVIO: ren *%originale%.* *%modificare%.* goto end :rin4 ECHO. ECHO Rinominare abcde*.* ECHO. set originale= set /p originale=Digita la stringa dei file originali e premi INVIO: set modificare= set /p modificare=Digita la stringa di modifica e premi INVIO: ren %originale%*.* %modificare%*.* :end trovi tutto cercando "comandi batch" o "sintassi batch" o "variabili batch" su google, e aprendo i link che puntano a siti M$ con tutte le liste. Quote:
non so se vada anche per le stringhe, non credo proprio. magari alla fine (sotto :end)puoi cacciare anche un dir /p per controllare immediatamente il risultato dell'operazione. cerca. ciao
__________________
Ultima modifica di Khronos : 21-07-2008 alle 20:12. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 358
|
Sono abbastanza nuovo alla creazione dei file batch.
Grazie per il file, posso sempre usarlo come esempio. Sarebbe possibile creare un file che mi chieda: 1) In quale cartella modificare il nome dei file. ad esempio, se il path é sempre C:\Documenti\Pippo\xxxxx\Gruppo A\ dove xxxx é la viariabile (che puo' essere 08 Agosto 2008 oppure 09 Settembre 2008), sarebbe possibile fare in modo che il file mi chieda che valore debba avere xxxxx? 2) Quale nome modificare e quale assegnare. nel senso, prendiamo il caso che io voglia modificare il file pippo_0708.xls in pippo _0808.xls. Dando il semplice comando Codice:
rename *_0708.xls *_0808.xls Ora se io volessi cambiare il nome da _0808.xls a _0908.xls senza dover riscrivere per forza il file......sarebbe possibile creare un file che mi chieda quale estensione cambiare e con cosa? Non so se sono riesco ad essere chiaro su cio' che vorrei fare. Ciao e grazie
__________________
Il mio primo mac: Macbook Pro 13"; Intel Core 2 Duo a 2,4GHz; HDD 250GB a 5400 giri/min; NVIDIA GeForce 320M; 4 GB RAM |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2007
Città: quel ramo del lago di como, che volge a mezzogiorno... ^^
Messaggi: 19625
|
tieni conto che "creazione di file batch" equivale semplicemente a impilare comandi MS-DOS semplici intervallati da condizioni e/o cicli. se hai già provato a programmare qualcosina in qualsiasi linguaggio sappi che non è un'enorme difficoltà.
se tu leggi per bene il codice che ho scritto prima, è perfettamente intuibile che ti ho già dato quasi il codice per 4 possibilità: Quote:
"ECHO." scrive una riga vuota. "ECHO ciaociao" scrive ciaociao. quindi queste prime righe visualizzano un pò di testo sullo schermo. io te le ho messe di esempio, e come vedi ci sono già 4 "tipi" di ridenominazione possibili. per il fatto del path, A) devi sapere anche dove mettere il file .bat, perchè altrimenti se lo vuoi eseguire ovunque devi in windows inserirne la variabile di sistema, e non so se funzioni bene. (sono di fretta, scriverò meglio dopo) B) semplicissimo. se il comando da dare è Codice:
rename C:\Documenti\Pippo\xxxxx\Gruppo A\file.ext C:\Documenti\Pippo\yyyyy\Gruppo A\file.ext Codice:
rename C:\Documenti\Pippo\%cartella_orig%\Gruppo A\%file%.%ext% C:\Documenti\Pippo\%cartella_fin%\Gruppo A\%file_fin%.%ext_fin% il resto del codice te lo spiego più tardi, ma se come ho detto prima cerchi in google "sintassi batch" trovi di tutto. ciao
__________________
Ultima modifica di Khronos : 22-07-2008 alle 10:57. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 358
|
grazie per le risposte
avevo intuito che potesse servirmi (lo anche scritto), ma non sapevo come impostare le scelte. Adesso provo a vedere cosa posso fare (anche cercando su internet), ma anche se e' un file che mi serve per il lavoro, non credo che il mio capo sia contento che "perdo tempo" Attendo anche le tue spiegazioni (se puoi) Ciao e grazie
__________________
Il mio primo mac: Macbook Pro 13"; Intel Core 2 Duo a 2,4GHz; HDD 250GB a 5400 giri/min; NVIDIA GeForce 320M; 4 GB RAM |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2007
Città: quel ramo del lago di como, che volge a mezzogiorno... ^^
Messaggi: 19625
|
fermo. la fretta era cattiva consigliera.
ti spiego una scelta passo passo. Codice:
:inizio ECHO Ridenominazione guidata lista di file in %~f1 ECHO --------------------------------- ECHO Opzioni disponibili: ECHO. ECHO 1)Rinominare abcde.* ECHO 2)Rinominare *.abc ECHO 3)Rinominare *abc.* ECHO 4)Rinominare abc*.* ECHO 5)Rinominare abcde.xyz in X:\path\ ECHO. ECHO. @ECHO off Codice:
set scelta= set /p scelta=Specificate l'opzione desiderata e premete INVIO: if not '%scelta%'=='' set scelta=%scelta:~0,1% if '%scelta%'=='1' goto rin1 if '%scelta%'=='2' goto rin2 if '%scelta%'=='3' goto rin3 if '%scelta%'=='4' goto rin4 if '%scelta%'=='5' goto rin5 Codice:
ECHO. ECHO "%scelta%" non e' un numero di opzione valido, riprova. ECHO. goto inizio cerchiamo :rin5 . Codice:
:rin1.......... ..... . ...... :rin2...... ... .. . . . . :rin3 ..... . ...... . ..:rin4 ........ . .... .. :rin5 Codice:
:rin5 ECHO. ECHO Rinominare abcde.xyz in X:\path\ ECHO. set cartella= set /p cartella=Digita il nome della cartella e premi INVIO: ECHO. set file= set /p file=Digita la stringa file originale e premi INVIO: ECHO. set ext= set /p file=Digita la stringa estensione originale e premi INVIO: ECHO. set file_new= set /p file=Digita la stringa file modificata e premi INVIO: ECHO. set ext_new= set /p file=Digita la stringa estensione modificata e premi INVIO: ECHO. dichiari le variabili e chiedi di riempirle. (per l'ultima volta, ocio al "set /p" che ho sparato a caso in questo ambito. va benissimo con "scelta" all'inizio, ma qui con stringhe di caratteri dovrebbe esserci un'altra lettera.) la variabile cartella può contenere di tutto, a seconda dei tuoi comodi. la semplice xxxx, oppure il path completo, C:\affdf\faadada\xxx\dfdfas\xxx. Io ho presupposto che sia solo xxxx. ATTENTISSIMO A Gruppo A siamo in dos 7 o 8, non nei vecchi. nei vecchi lo spazio non era neanche ammesso. e c'era il limite di 8.3 caratteri. cartelle con nome più grosso vengono trinciate in docume~1 nella vecchia notazione (questa è ad esempio documents and settings). altrimenti, se si vuole scrivere nella nuova, in presenza di spazi bisogna mettere L'INTERO INDIRIZZO TRA VIRGOLETTE "C:\asdasdsas asfafa\qwe zxc\errerrqereqr\134.523" ora vengono i comandi finali. Mettiamo che tu, col tuo batch, stia in X:\cartella_del_batch\ quindi dovrai spostarti materialmente di la, per fare tutti i tuoi comandi. puoi farlo in 2 modi, o direttamente nel "rename" o separatamente dal "rename". insieme al rename: Codice:
ren "C:\ciao\pippo\%cartella%\Gruppo A\%file%.%ext%" "C:\ciao\pippo\%cartella%\Gruppo A\%file_new%.%ext_new%" goto end Codice:
cd "C:\ciao\pippo\%cartella%\Gruppo A\" ren %file%.%ext% %file_new%.%ext_new% goto end Codice:
:end dir /p cd X:\cartella_del_batch se hai usato il metodo "insieme al rename, prima di fare "dir /p" devi rientrare in "X:\indirizzo dove hai lavorato i files", altrimenti ci sei già. il codice completo di tutta sta barcamenata uscirebbe così: Codice:
:inizio ECHO Ridenominazione guidata lista di file in %~f1 ECHO --------------------------------- ECHO Opzioni disponibili: ECHO. ECHO 1)Rinominare abcde.* ECHO 2)Rinominare *.abc ECHO 3)Rinominare *abc.* ECHO 4)Rinominare abc*.* ECHO 5)Rinominare abcde.xyz in X:\path\ ECHO. ECHO. @ECHO off set scelta= set /p scelta=Specificate l'opzione desiderata e premete INVIO: if not '%scelta%'=='' set scelta=%scelta:~0,1% if '%scelta%'=='1' goto rin1 if '%scelta%'=='2' goto rin2 if '%scelta%'=='3' goto rin3 if '%scelta%'=='4' goto rin4 if '%scelta%'=='5' goto rin5 ECHO. ECHO "%scelta%" non e' un numero di opzione valido, riprova. ECHO. goto inizio :rin1.......... ..... . ...... :rin2...... ... .. . . . . :rin3 ..... . ...... . ..:rin4 ........ . .... .. :rin5 ECHO. ECHO Rinominare abcde.xyz in X:\path\ ECHO. set cartella= set /p cartella=Digita il nome della cartella e premi INVIO: ECHO. set file= set /p file=Digita la stringa file originale e premi INVIO: ECHO. set ext= set /p file=Digita la stringa estensione originale e premi INVIO: ECHO. set file_new= set /p file=Digita la stringa file modificata e premi INVIO: ECHO. set ext_new= set /p file=Digita la stringa estensione modificata e premi INVIO: ECHO. cd "C:\ciao\pippo\%cartella%\Gruppo A\" ren %file%.%ext% %file_new%.%ext_new% goto end :end dir /p cd X:\cartella_del_batch
__________________
Ultima modifica di Khronos : 22-07-2008 alle 21:48. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:35.



















