PDA

Visualizza versione completa : Semplice batch di spostamento files


Deviling Master
24-05-2008, 13.30.17
Ciao, rieccomi qua con un piccolo problema, mi servirebbe questo piccolo batch per raggruppare dei files sparsi in una stessa cartella.

Se ho un albero di cartelle composto ad esempio così:

C:\cartellaRoot
----- file1.txt
----- \subFolder1
---------- file2.txt
----- \subFolder2
---------- file1.txt
---------- \subFolder2\subFolder1
--------------- file3.txt
---------- \subFolder2\subFolder2
----- \subFolder3


e una cartella di destinazione

C:\dext



Copiare i files della cartella root e i files delle varie sottocartelle (agendo in ricorsione) nella cartella di destinazione, rinominando in automatico se un file esiste già con un suffisso a caso (es. Copia 1, 001, ...)

Il risultato dell'operazione sarà:

"dir C:\dext"
file1.txt
file2.txt
file1-001.txt
file3.txt



Spero di essermi spiegato bene

Grazie Ciao

P.S.
Ho provato a fare "cerca *.*" e poi spostarli ma:
1) non riesco a spostarli visto che i files sono talmente tanti che si inchioda (parliamo di circa 100'000files)
2) nel caso trova un file già esistente devo dirgli rinomina uno alla volta

Se conoscete anche un programma già fatto che faccia al caso mio non esitate

Ciao Ancora

borgata
24-05-2008, 14.19.42
è fattibile, ma la questione del rinominare è il vero problema, perchè richiederebbe o ricerche multiple per ogni file (esplicite o semplicemente intercettando l'errore di copia), che per un numero così elevato di file renderebbero l'operazione esasperante.

Io suddividerei il problema in tre parti, il che dovrebbe risolvere il problema di cui ho parlato sopra:
- ad ogni file inserisci un suffisso ordinale a 6 cifre (esempio, il 12345esimo file verrebbe rinominato con nomefile_12345)
- sposti tutti i file in una singola cartella (ricerca + drag'n drop, assicurandoti di spostare nella stesa unità disco)
- rinomini a gruppi in modo da ottenere il suffisso ordinale non globabile ma per ogni nomefile (facilmente fattibile con uno scriptino)

Per il primo e forse il terzo punto puoi usare un programma tipo renamer, per il secondo ti consiglio pdfind al posto della ricerca di windows (tutti programmi free).

Infine posso dirti che non ho abbastanza dimestichezza con il prompth dos da farlo, ma si potrebbe fare uno script bash da far girare su una distribuzione live di linux. Altrimenti un programmino in C.

Deviling Master
25-05-2008, 15.30.41
Ricerca + D&D è impossibile vista la mole di files si inchioda tutto appena cerco di spostarli

borgata
25-05-2008, 17.06.57
Hai provato con pdfind come ti ho suggerito?

In alternativa puoi provare ad eseguire quel passo con una distribuzione live di linux o un explorer alternativo (mi viene ora in mente free commander, ma ce ne sono molti altri).
Altrimenti puoi fare il trasferimento con un semplice script che faccia solo quello (ma non credo possa essere più efficiente di un software compilato). Prima però è necessario rinominare, per ovviare al problema dei file con lo stesso nome.