PDA

View Full Version : Aiuto creazione file batch


luca9333
15-10-2015, 13:57
Ciao a tutti,dovrei creare un file batch per il mio archivio webcam. In poche parole dovrebbe prendere i file immagine di ogni giorno (ora ho 45.000 foto tutte mischiate) e spostarli dentro ad una cartella (che abbia come nome la data del file). è fattibile?

x_Master_x
15-10-2015, 15:38
Non lo farò tutto. Questo batch da una cartella estrae i percorsi dei file e il nome della cartella da creare ( cioè la data di creazione )

: x_Master_x
@ECHO OFF
SetLocal EnableDelayedExpansion
For /f "delims=*" %%a in ('dir /b/tc/a-d "X:\Percorso\Cartella"') Do (
SET creationdate=%%~ta
SET mm=!creationdate:~3,2!
SET dd=!creationdate:~0,2!
SET yyyy=!creationdate:~6,4!
SET foldername=!dd!-!mm!-!yyyy!
MKDIR "X:\Percorso\Cartella\Destinazione\!foldername!"
MOVE "%%~fa" "X:\Percorso\Cartella\Destinazione\!foldername!"
)
PAUSE


Il resto lo lascio a te. Puoi posizionare il batch nella stessa cartella in cui ci sono i file da spostare.

P.S. In firma c'è un programma che potrebbe esserti utile per organizzare i tuoi file, Old Files Manager

luca9333
15-10-2015, 18:47
Non lo farò tutto. Questo batch da una cartella estrae i percorsi dei file e il nome della cartella da creare ( cioè la data di creazione )

: x_Master:x
@ECHO OFF
SetLocal EnableDelayedExpansion
For /f "delims=*" %%a in ('dir /b/tc/a-d "X:\Percorso\Cartella"') Do (
SET creationdate=%%~ta
SET mm=!creationdate:~3,2!
SET dd=!creationdate:~0,2!
SET yyyy=!creationdate:~6,4!
SET foldername=!dd!-!mm!-!yyyy!
ECHO PERCORSO: %%~fa NOME CARTELLA: !foldername!
)
PAUSE


Il resto lo lascio a te.

P.S. In firma c'è un programma che potrebbe esserti utile per organizzare i tuoi file, Old Files Manager

Grazie mille, stasera ci provo

luca9333
16-10-2015, 09:41
Non lo farò tutto. Questo batch da una cartella estrae i percorsi dei file e il nome della cartella da creare ( cioè la data di creazione )

: x_Master:x
@ECHO OFF
SetLocal EnableDelayedExpansion
For /f "delims=*" %%a in ('dir /b/tc/a-d "X:\Percorso\Cartella"') Do (
SET creationdate=%%~ta
SET mm=!creationdate:~3,2!
SET dd=!creationdate:~0,2!
SET yyyy=!creationdate:~6,4!
SET foldername=!dd!-!mm!-!yyyy!
ECHO PERCORSO: %%~fa NOME CARTELLA: !foldername!
)
PAUSE


Il resto lo lascio a te.

P.S. In firma c'è un programma che potrebbe esserti utile per organizzare i tuoi file, Old Files Manager

Ho provato a modificarlo così ma non mi sposta i file dentro alla cartella con data...


@ECHO OFF
SetLocal EnableDelayedExpansion
For /f "delims=*" %%a in ('dir /b/tc/a-d "C:\Users\Luca\Documents\prova"') Do (
SET creationdate=%%~ta
SET mm=!creationdate:~3,2!
SET dd=!creationdate:~0,2!
SET yyyy=!creationdate:~6,4!
SET foldername=!dd!-!mm!-!yyyy!
ECHO PERCORSO: %%~fa NOME CARTELLA: !foldername!
move C:\Users\Luca\Documents\prova*.* C:\Users\Luca\Documents\prova\!dd!-!mm!-!yyyy!
)
PAUSE

x_Master_x
16-10-2015, 10:01
Hai intenzione di quotare lo stesso messaggio per tutto il thread? :D
Per prima cosa, devi prima creare la cartella di destinazione ( mi riferisco ovviamente alla data ) con MKDIR
In secondo luogo, hai già il percorso dei file ( cioè "%%~fa", l'hai visto l'ECHO? ) da usare con MOVE e non hai bisogno di quella directory con *.*

luca9333
16-10-2015, 12:22
Hai intenzione di quotare lo stesso messaggio per tutto il thread? :D
Per prima cosa, devi prima creare la cartella di destinazione ( mi riferisco ovviamente alla data ) con MKDIR
In secondo luogo, hai già il percorso dei file ( cioè "%%~fa", l'hai visto l'ECHO? ) da usare con MOVE e non hai bisogno di quella directory con *.*

Dai ora cambio quote :D :D non ci capisco veramente nulla:doh: ... MKDIR sarebbe il comando che crea la cartella,ma come faccio a far copiare dentro a questa cartella i file?

x_Master_x
16-10-2015, 12:50
Ho capito, pappa pronta. Editato il post #2