Batch per copiare automaticamente foto di una SD in una cartella del PC.

Pubblicità

emmeking

Utente Attivo
Messaggi
512
Reazioni
29
Punteggio
40
Salve a tutti, come da titolo, vorrei creare un programmino batch che mi permetta, ogni qualvolta io inserisca una chiavetta o una SD nel pc, questo mi salvi automaticamente le foto in una cartella predefinita, ne uso diverse ogni giorno, quindi è una rottura tutte le volte copiare i file manualmente.
So più o meno come copiare solo le foto dalla SD al pc, ma non so come fare attivare lo script automaticamente quando inserisco una chiavetta, senza sapere la lettera e non riesco a trovare nulla a riguardo, mi sapreste aiutare?

P.S.
L'O.S. è windows 8.1 (anche se sto pensando di aggiornare a win 10), non so se cambia qualcosa.
 
Ultima modifica:
Non si puo' fare con un batch, serve un programma tipo questo:
Come copiare chiavetta USB di nascosto | Salvatore Aranzulla

Non lo ho provato quindi lo esegui a tuo rischio e pericolo.

Ne sei sicuro? Se è così è un peccato, perchè poi lo volevo adattare per copiare le immagini in una cartella ed i video in un'altra...
Inoltre quel software, nella versione free copia tutto e non solo le immagini, quando inserisco la micro SD del cellulare vorrei mi copiasse solo quelle e non TUTTA la micro SD, senza contare che ha un limite di 10MB... Praticamente mi copia una foto e basta.
 
Il problema e' farlo partire in automatico.
Vuol dire che occorre un processo in ascolto sulle porte, che agisce appena si accorge che e' stata collegata una chiavetta.

Questo non si fa con un batch perche' un batch e' solo una sequenza di comandi dos.

- - - Updated - - -

Ci vuole una cosa del genere, in questo caso fatta in C#
A USB Library to Detect USB Devices - CodeProject

Io so usare un po delphi e java (le basi), si può fare nulla con questi linguaggi?
 
ma invece di farlo partire automaticamente quando inserisci il dispositivo, non puoi fare un batch che fai partire te quando ti serve indicando il path del dispositivo in questione?
 
La butto la come idea..
Invece di fare uno script che DA WINDOWS controlla le usb, non è più semplice inserire un autorun NELLA USB??
 
La butto la come idea..
Invece di fare uno script che DA WINDOWS controlla le usb, non è più semplice inserire un autorun NELLA USB??

Se fa tipo il fotografo che maneggia usb non sue e' impossibile, se invece sono sue e sempre quelle sarebbe la soluzione ottimale.
 
ma invece di farlo partire automaticamente quando inserisci il dispositivo, non puoi fare un batch che fai partire te quando ti serve indicando il path del dispositivo in questione?

La butto la come idea..
Invece di fare uno script che DA WINDOWS controlla le usb, non è più semplice inserire un autorun NELLA USB??
@Giacky91 Non posso, perchè i drive sono molti e diversi, quindi la lettera cambia sempre e quindi anche la path delle immagini.
@cdtux Non posso fare un autorun dall'usb, perchè alcune non sono mie ed altre sono SD degli smartphone quindi non posso metterci un autorun (anche se potessi, dovrei farne uno diverso per ogni dispositivo, e non posso mettere un'autorun nelle chiavette degli altri...)

Volevo fare una cosa del genere: se lo script individua che una chiavetta è stata inserita, controlla se c'è la cartella DCIM, allora prende le immagini solo da li, altrimenti scansiona tutto il drive (se no, negli smartphone mi scarica sempre tutte le thumbnail, quelle di whatsapp, gli sfondi ed altre immagini inutili)
 
@Giacky91 Non posso, perchè i drive sono molti e diversi, quindi la lettera cambia sempre e quindi anche la path delle immagini.

Volevo fare una cosa del genere: se lo script individua che una chiavetta è stata inserita, controlla se c'è la cartella DCIM, allora prende le immagini solo da li, altrimenti scansiona tutto il drive (se no, negli smartphone mi scarica sempre tutte le thumbnail, quelle di whatsapp, gli sfondi ed altre immagini inutili)

Ma é esattamente quello che ho detto io!
imposti il batch che deve ricevere un parametro quando lo lanci da linea di comando. Questo parametro é la lettera che identifica il dispositivo collegato( D, E, F....)
dopo di che va alla ricerca delle cartelle che ti servono!
quindi da riga di comando puoi lanciare: copiafile.bat D
lui sa che il tuo dispositivo é mappato con la lettera D
puoi anche pensare di passare direttamente il path della cartella che ti serve, ma non sarebbe piu cosi "automatico".
 
Ma é esattamente quello che ho detto io!
imposti il batch che deve ricevere un parametro quando lo lanci da linea di comando. Questo parametro é la lettera che identifica il dispositivo collegato( D, E, F....)
dopo di che va alla ricerca delle cartelle che ti servono!
quindi da riga di comando puoi lanciare: copiafile.bat D
lui sa che il tuo dispositivo é mappato con la lettera D
puoi anche pensare di passare direttamente il path della cartella che ti serve, ma non sarebbe piu cosi "automatico".
A quel punto però, se devo andarmi a cercare la lettera tutte le volte, tanto vale farlo a mano...
Ci metto lo stesso tempo che a trovare quale è il drive giusto, aprire il file .bat e scriverglielo... Nemmeno così è molto automatico :(
 
A quel punto però, se devo andarmi a cercare la lettera tutte le volte, tanto vale farlo a mano...
Ci metto lo stesso tempo che a trovare quale è il drive giusto, aprire il file .bat e scriverglielo... Nemmeno così è molto automatico :(

puoi provare a fare un batch demone che rimane sempre in esecuzione. ogni tot di tempo( 5 minuti o quello che vuoi) lancia una scansione per cercare dei dispositivi collegati.
Puoi dirgli di non cercare con le lettere A, B, C. se trova un nuovo dispositivo allora esegue la ricerca e la copia delle immagini.
non sarebbe una cosa immediata all´atto del collegamento del dispositivo, ma se vuoi usare un batch credo sia l´unica cosa.
 
puoi provare a fare un batch demone che rimane sempre in esecuzione. ogni tot di tempo( 5 minuti o quello che vuoi) lancia una scansione per cercare dei dispositivi collegati.
Puoi dirgli di non cercare con le lettere A, B, C. se trova un nuovo dispositivo allora esegue la ricerca e la copia delle immagini.
non sarebbe una cosa immediata all´atto del collegamento del dispositivo, ma se vuoi usare un batch credo sia l´unica cosa.

Mi può andare bene, ma non ho idea di come fare a sapere i drive collegati e dirgli: Se H è collegato allora, etc etc...
 
Mi può andare bene, ma non ho idea di come fare a sapere i drive collegati e dirgli: Se H è collegato allora, etc etc...

ho trovato: https://support.microsoft.com/en-us/kb/65994

spiega che é possibile usando a funzione IF EXIST
Codice:
 @[URL="http://www.tomshw.it/forum/members/echo-5197.html"]echo[/URL] off
IF EXIST C:\Users\NUL (
    echo "path found!"
    CD \Users\
) ELSE (
    echo "path not found..."
)
il piccolo batch qua sopra verifica l´esistenza della cartella con path C:\Users\. Si aggiunge NUL come spiegato nel link sopra.
puoi usare questo codice per la verifica di tutte i path che si possono creare.
un ciclo esterno che ti cicla tutte le lettere da D a Z e un if dentro al ciclo che ti permette di verificare se esiste il path
una cosa del genere
Codice:
 @[URL="http://www.tomshw.it/forum/members/echo-5197.html"]echo[/URL] off
:infinite
    for %%a in ( D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z) DO (
        IF EXIST %%a:\NUL ( 
            //fai cose
    )
goto infinite

- - - Updated - - -

ti riporto anche una interessante discussione presa da StackOverflow, la prima risposta, dopo EDIT mi sembra faccia al caso tuo!
Detect USB and copy *.* to USB drive using batch script - Stack Overflow
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top