Spostare i file da più cartelle tutte nella directory principale con prompt dei comandi


8

Ho più file .rar in più cartelle come questa:

C:\Docs\Folder1\rarfile1-1.rar
C:\Docs\Folder1\rarfile1-2.rar
C:\Docs\Folder1\rarfile1-3.rar  

C:\Docs\Folder2\rarfile2-1.rar
C:\Docs\Folder2\rarfile2-2.rar
C:\Docs\Folder2\rarfile2-3.rar  

C:\Docs\Folder3\rarfile3-1.rar
C:\Docs\Folder3\rarfile3-2.rar
C:\Docs\Folder3\rarfile3-3.rar  

Voglio spostare tutti i file .rar nella directory principale 'C: \ Docs'. Ho molto più di 3 cartelle, quindi stavo pensando di creare un file batch o qualcosa del genere. Quali sarebbero i comandi per farlo?
Grazie


Ho cercato un problema simile e ho trovato utile questa risposta .
lalthomas,

Risposte:


15

Ho appena creato un'applicazione a riga di comando che fa esattamente questo (in più mostra alcune statistiche) e ho cercato di vedere se qualcuno stava provando a farlo in modo da poterlo condividere e salvare qualcuno dal doverlo capire.

È stato molto divertente scrivere. Richiede .NET 3.5, funziona dalla riga di comando, chiama con -h o nessun parametro per l'utilizzo.

MoveFilesUpFromSubfolders
(codice sorgente)

Feedback un vantaggio! :)

Oh, e screenshot di come appare:

                               


3
+1 Scrivere un programma per risolvere il problema di qualcuno. Questo è impegno!
Li-aung Yip,

1
@ Li-aungYip Grazie mille per il complimento! Inoltre, a causa di circostanze, non ho più il disco rigido in cui ero solito programmare nel tempo in cui l'ho fatto (dopo aver perso questo e molte altre cose), quindi sono abbastanza felice di vederlo qui e di averlo scaricato ora ( complimenti per Mediafire per averlo archiviato per così tanto tempo con pochi download, e sono fortunato a non averlo archiviato in Megaupload!). Quindi, se lo metti in prospettiva, più dai e più ricevi :)
Camilo Martin

Ottimo lavoro! +1 e 50 ripetizioni So che ha 4,5 anni, ma questo mi è stato molto utile perché ho scaricato più di 90 file che sono andati in più di 90 cartelle. Questo mi ha aiutato a mettere tutti i file nella sua cartella principale.

L'unica critica che ho è che quando ho provato a usare questo, un errore su un problema con la cartella continuava ad apparire, e non ha indicato il perché. Solo usando il comando -t, sono stato in grado di determinare perché c'era un problema con la cartella (perché era stato chiamato con oltre 250 caratteri). Questo è facilmente aggirabile evidenziando tutte le cartelle e rinominandone una (quindi il resto verrà aggiunto con un numero).

@ edmastermind29 Sono super felice di sapere che un mio vecchio codice è stato ancora utile a qualcuno. Che ci crediate o no, l'archivio del codice sorgente è stato rimosso da mediafire per essere stato contrassegnato automaticamente come violazione del copyright (il che è abbastanza assurdo, considerando che non ci sono video o audio ma solo testo lì), e non ho idea di come ho fatto questo . Se è di qualche utilità, a questo punto scriverei un one-liner bash per affrontare un problema come questo, qualcosa come mv dir/sub/* dir; rmdir dir/subin un ciclo.
Camilo Martin,

7

Prova questo:

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)

Puoi spiegarlo un po 'di più?
Nick,

@Nick: per tutte le cartelle in docs, inserisci cartella. Sposta tutti i file dalla cartella corrente alla cartella principale. Ritorna alla cartella principale.
Ciao,

Il pushde popdnon è davvero necessario. cdfunzionerebbe bene.
Ciao,

Come spiegato da Hello71. Inoltre, potrebbe essere fatto con una sola riga:for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd

1
NB. Né l'originale sopra né il liner singolo gestiranno correttamente i nomi di file duplicati.
BillP3rd

5

Bene, la risposta alla tua domanda è molto semplice. Non è una sceneggiatura ma lo farà.

Presumo che tu stia eseguendo Windows.

  • Mettiti nella directory C: \ Docs
  • Premi F3 (ricerca)
  • Cerca * .rar
  • Premi Crtl + A
  • Premi Ctrl + X
  • Chiudi la finestra di ricerca e vai nuovamente a C: \ Dosc in explorer
  • Incolla i file tagliati premendo CTRL + V.

+1 per una soluzione semplice e piacevole senza terze parti o script.
Syakur Rahman,

+ 1 metodo migliore e più veloce A +++
Sickest

3

L'aspirazione ha funzionato per me su questo problema.

Suction è un'app portatile e gratuita che ti aiuterà a sistemare le cartelle disordinate in pochissimo tempo.

L'aspirazione funziona consolidando le directory madri. Ad esempio, se la directory delle immagini è piena di cartelle non necessarie, trascina la cartella nell'interfaccia di Suction e eliminerà le cartelle, lasciandoti solo con i file. Questo è utile anche per le persone che scaricano molte cose.


0

Questo dovrebbe funzionare:

move C:\Docs\*\* C:\Docs

2
Ottengo l'errore: il nome del file, il nome della directory o la sintassi dell'etichetta del volume non sono corretti.
Nick,

Il ** non ha funzionato
Nick,

Devi assicurarti di inserire `\`, e che non sia evaso dal tuo editor di testo.
Ciao,

L'emissione di questo comando da un prompt CMD (in Windows 7) genera l'errore notato da Nick.
BillP3rd

Questo non funzionerà. * non funziona correttamente per le cartelle. Devo rompere i programmi di terze parti come Total Commander.
surfasb,

0

Esempi di copia o spostamento di file da sottodirectory in una singola directory

per / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') copia / y "% a" C: \ Temp \ epub.

per / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') sposta / y "% a" C: \ Temp \ epub

il "token = * è per catturare percorsi con caratteri speciali

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.