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.