Come copiare una struttura di directory senza copiare i file?


47

Ho una cartella con molte sottocartelle e file. Esiste un modo per copiare la struttura di cartelle e sottocartelle senza copiare i file in esse contenuti, usando cmd o powershell?

Risposte:


45

Se vuoi copiare anche cartelle vuote.

xcopy C: \ Cartelle D: \ Cartelle / t / e


1
corretto, /edovrebbe essere usato anche.

1
XCOPY Build in Powershell di default e funziona perfettamente.
BenCes,

29

Sì. XCOPY

XCopy source {destination}  /t

esempio

xcopy C:\Folders D:\Folders /t

ulteriori informazioni su xcopy sono disponibili qui http://ss64.com/nt/xcopy.html


5
Dovresti aggiungere /eper copiare anche cartelle vuote

18

Sebbene XCOPY funzioni ancora, Windows Vista e versioni successive includono ROBOCOPY che ha più funzionalità. La sintassi generale per copiare un albero di cartelle (comprese le cartelle vuote) senza i file è:

robocopy "A:\Source folder" "B:\Destination folder" /e /xf *


3

Metodo PowerShell che non richiede la copia di ogni file e la loro eliminazione:

Copy-Item -LiteralPath '.\source' -Destination 'C:\path\to\copy' -Recurse -Filter {PSIsContainer -eq $true}

O più succintamente:

copy .\source C:\path\to\copy -r -fi PSIsContainer

L'unico trucco interessante qui è il filtro sulla PSIsContainerproprietà, che è vero per le directory ma non per i file.


Anche questo è super veloce!
Regmi,

1

Guarda l'app 47folders, uno strumento Windows gratuito e pratico, che fa esattamente quello che ti serve attraverso una bella interfaccia grafica. inserisci qui la descrizione dell'immagine

ATTENZIONE: l'ex link ( http://47foldersapp.com/ ) ora (Nov 2017) porta alla pubblicità di abbigliamento. L'ultima buona copia di Internet Archive è qui . Il software potrebbe essere ancora disponibile da siti di download gratuiti come questo .


0

Probabilmente c'è una soluzione migliore, ma vedrei questi:

  • Copia tutto, quindi svuota le cartelle con uno script.

  • Crea uno script che copi tutto se non ha estensione. A meno che tu non abbia file senza estensione nelle cartelle, cosa che non dovresti, dovrebbe funzionare, perché, bene. Le cartelle non hanno estensioni. Qualcosa che sarebbe simile a questo nello pseudocodice:

open_directory ($ path);
while ($ file = get_directory_content) {
if (vuoto (get_file_extension ($ file))) {
copy_the_file ($ file, $ destination);
}
}
close_directory;


Sfortunatamente, abbiamo file senza estensioni. Da .placeholder per repository di codice, ad alcuni file di dati specifici.
Rook

Oh. Bene. Forse c'è una cosa if (è una cartella), quindi. Ma uhm. La cosa xcopy sopra sembra che sia la cosa giusta per te allora. A meno che non lo sia, nel qual caso è possibile eseguire uno script per 1. copiare tutte le cartelle e 2. svuotare tutte le cartelle. O qualcosa. Ma questo è ... lungo. xD
Ariane

0

Usa PowerShell per farlo usando. Fai copia della cartella e quindi Remove-Item -Path "C:\test\*.*" -recurse



-1

per quanto ne so ci sono software di terze parti che possono fornire questa funzionalità se si desidera fare con il prompt dei comandi, quindi il comando di copia è là fuori. digitare help copy in cmd che fornisce dettagli su come copiare i file tramite cmd.
dopo aver copiato vai nella cartella tramite cmd ed esegui il comando

del *. *
che elimina i file perché le cartelle non hanno. personaggio


3
Elimina i file, ma chi dice che i nomi delle cartelle non possono contenere anche un punto / punto?
Karan,
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.