Trovare una cartella e spostarla con un .bat

di il
5 risposte

Trovare una cartella e spostarla con un .bat

Salve.. sinceramente non sapevo in che sezione scrivere. Avrei bisogno di un aiuto con un .bat e mi servirebbe sapere se si può e come..

trovare una cartella in tutte le unità del pc (non sapendo in che unita sarà quella cartella avrei bisogno di cercare in tutto il pc) , copiare pathname e spostare, utilizzando il pathname trovato, la cartella in un altra cartella
grazie mille
salve

5 Risposte

  • Re: Trovare una cartella e spostarla con un .bat

    Ciao

    Non è chiarissimo lo scopo: trovare una cartella e spostarla in un'altra cartella.

    Con che criteri cerchi la cartella desiderata?
    Se in percorsi diversi (o drive diversi ) ci sono più cartelle che rispecchiano gli stessi filtri, cosa si deve fare? Non so, magari hai C:\Pippo, C:\UnAltro\Percorso\Pippo, E:\Backup\Pippo... Quale cartella Pippo si deve spostare?
    Come si decide quale sia la cartella di destinazione?
  • Re: Trovare una cartella e spostarla con un .bat

    Ciao
    grazie per la risposta
    Dovrei trovare (in questo caso E:, ma dipende dal pc.. se dovessi spostare la chiavetta con quel file .bat su un altro pc che ha già occupato il percorso E: e quindi la chiavetta prende il nome di .. per esempio F:, vorrei che il .bat capisse da solo in che unità si trova per poi spostare la cartella su C: ( però ora che ci penso.. mi viene in mente che ho altre cartelle con lo stesso nome.. e non vorrei trovasse quella sbagliata.. non è che si possono escludere delle unità o escludere i dischi rigidi? (in questo caso mi servirebbe escludere F: che è un disco rigido )
    per esempio
    devo cercare in che unita si trova la cartella "pippo"
    devo fare una ricerca escludendo F:
    mettiamo che il pathname trovato è: G:\-\pippo
    devo spostare la cartella "pippo utilizzando" quel pathname in C:\crt-temp

    set dstdir=c:\crt-tmp
    mkdir %dstdir% <-- questa parte è per la cartella dove verrà spostato "pippo"
    attrib +h %dstdir%

    (avrei bisogno che cercasse dove si trova "pippo", ma il "pippo" giusto (non quello in F: ) e poi.. non saprei come dirlo ma che utilizzasse il pathname trovato come punto di rifermento sul quale poi eseguire l'ultimo comando)

    set pippo= (path name trovato)
    move %pippo%*.* %dstdir%

    magari non c'è bisogno di settare il pathname di "pippo" come %pippo%, ma avrei bisogno che alla fine venisse spostata la cartella "pippo" con il giusto pathname in C:\ctr-tmp
  • Re: Trovare una cartella e spostarla con un .bat

    Ho capito poco di quello che vuoi fare, però provo a darti una mano con alcuni esempi, poi al massimo li adatti alla tua realtà.

    Facciamo finta di avere una chiavetta USB che contiene il nostro bat (quindi viene lanciato direttamente dalla chiavetta) e la cartella Prova che dobbiamo copiare in un percorso definito del sistema operativo, nel nostro caso MainRoot\Prova.

    In pratica la cartella avrà questa struttura:
    
    spostaCartella.bat
    \Prova
     - File1.txt
     - File2.txt
     - ....  
    

    Le cose che ci interessano sono:
    • Trovare il percorso da cui viene lanciato il bat, così da poter trovare la cartella di partenza. Nel nostro caso usiamo %cd% perchè ragioniamo sul fatto che il bat venga lanciato col mouse (doppio click), quindi il path di partenza sarà quello in cui si trova il file (indipendentemente dalla lettera associata all'USB)
    • Trovare il disco in cui è installato windows. Per farlo usiamo la variabile %SystemDrive% così da poter costruire il bat di destinazione
    • Verificare se la directory di destinazione esiste (nel caso NON copiamo). Per farlo usiamo il comando "exist"
    • Copiare la cartella e le sue sottodirectory. Per farlo usiamo il comando xcopy

    Date queste premesse, un bat di esempio da cui puoi partire è questo:
    
    @set fromDirectory=%cd%\Prova
    @set toDirectory=%SystemDrive%\MainRoot\Prova
    
    @echo %fromDirectory%
    @echo %toDirectory%
    
    @echo off
    if exist "%toDirectory%"\ ( set /p UserInputPath=Directory %toDirectory% già esistente. Premere invio per uscire. ) else ( xcopy %fromDirectory% %toDirectory% /i /s /e )
    

    Vedi te poi come adattarlo alle tue necessità
  • Re: Trovare una cartella e spostarla con un .bat

    Grazie mille.. non so spiegarmi molto bene.. ora provo e poi ti faccio sapere
    ancora grazie e ciao
  • Re: Trovare una cartella e spostarla con un .bat

    HEYYY GRAZIE MILLE
    finalmente sono riuscito grazie a te
    ho dovuto cambiare un po' di cose ma dopo 2 ore finalmente ora tutto va alla perfezione.. grazie mille
Devi accedere o registrarti per scrivere nel forum
5 risposte