Un modo per farlo è creare una lista di file da spostare in una temporanea file. Quindi utilizzare il file con il comando for
. Generare la lista usando findstr
.
> dir/b/a-d | findstr /v aaa* > "%temp%\@movelist"
> for /f %f in (%temp%\@movelist) do move %f ...
Il primo comando ottiene un elenco di tutti i file (senza directory) nella directory corrente e poi tubi l'elenco di findstr
che esclude (/v
) i nomi dei file che corrispondono al modello e lo mette nel file @movelist
in la directory temporanea. Il secondo comando prende solo quei risultati in modo che tu possa fare ciò che vuoi con loro (spostalo).
Probabilmente esiste un modo migliore di farlo in un singolo comando senza il file temporaneo, non so proprio come scriverlo. Non sono sicuro di come chiamare il comando dir
dal comando for
. AFAIK richiede solo file di programma esistenti, non comandi incorporati.
fonte
2010-11-05 04:38:37
grande soluzione! grazie – eze1981
È una copia di file, non una mossa. Con file di grandi dimensioni, una copia può essere estremamente lenta mentre una mossa sullo stesso volume è quasi istantanea. – Adisak
Nota: ho trovato anche l'opzione '/ S' (visualizza il contenuto della directory in modo ricorsivo) utile. – Antonio