Jak skopiować strukturę katalogów bez kopiowania plików?


47

Mam folder z dużą ilością podfolderów i plików. Czy istnieje sposób na skopiowanie struktury folderów i podfolderów bez kopiowania zawartych w nich plików przy użyciu cmd lub PowerShell?

Odpowiedzi:


45

Jeśli chcesz również skopiować puste foldery.

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


1
poprawne, /enależy również użyć.

1
XCOPY wbudowany w PowerShell domyślnie i działa idealnie.
BenCes

29

Tak. XCOPY

XCopy source {destination}  /t

przykład

xcopy C:\Folders D:\Folders /t

Więcej informacji na temat xcopy można znaleźć tutaj http://ss64.com/nt/xcopy.html


5
Należy dodać, /eaby skopiować również puste foldery

18

Chociaż XCOPY nadal działa, Windows Vista i nowsze zawierają ROBOCOPY, który ma więcej funkcji. Ogólna składnia kopiowania drzewa folderów (w tym pustych folderów) bez plików to:

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


3

Metoda PowerShell, która nie wymaga kopiowania każdego pliku, a następnie usuwania go:

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

Lub bardziej zwięźle:

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

Jedyną interesującą sztuczką jest tutaj filtrowanie PSIsContainerwłaściwości, co dotyczy katalogów, ale nie plików.


To też jest super szybkie!
Regmi

1

Spójrz na aplikację 47folders, bezpłatne, poręczne narzędzie Windows, robi dokładnie to, czego potrzebujesz dzięki ładnemu GUI. wprowadź opis zdjęcia tutaj

OSTRZEŻENIE: dawny link ( http://47foldersapp.com/ ) teraz (listopad 2017 r.) Prowadzi do reklamy odzieży. Ostatnia dobra kopia archiwum internetowego jest tutaj . Oprogramowanie może być nadal dostępny z darmowych witryn pobierania, takie jak ten .


0

Prawdopodobnie istnieje lepsze rozwiązanie, ale widziałbym te:

  • Skopiuj wszystko, a następnie opróżnij foldery za pomocą skryptu.

  • Stwórz skrypt, który skopiuje wszystko, jeśli nie ma rozszerzenia. O ile nie masz plików bez rozszerzenia w folderach, których nie powinieneś, to powinno działać, ponieważ, no cóż. Foldery nie mają rozszerzeń. Coś, co wyglądałoby tak w pseudokodzie:

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


Niestety, mamy pliki bez rozszerzeń. Od .placeholder dla repozytoriów kodu, po niektóre określone pliki danych.
Gawron

O. Dobrze. Może więc jest coś, jeśli (to folder). Ale uhm. Wydaje się, że powyższa właściwość xcopy jest dla Ciebie odpowiednia. Jeśli nie jest, w takim przypadku możesz uruchomić skrypt, aby 1. skopiować wszystkie foldery i 2. opróżnić wszystkie foldery. Lub coś. Ale to jest ... Długie. xD
Ariane

0

Aby to zrobić, użyj programu PowerShell. Wykonaj kopię folderu, a następnie Remove-Item -Path "C:\test\*.*" -recurse



-1

o ile wiem, istnieje oprogramowanie innych firm, które może zapewnić tę funkcjonalność, jeśli chcesz zrobić z wierszem polecenia, a następnie polecenie kopiowania jest dostępne. wpisz help copy w cmd, który zawiera szczegółowe informacje na temat kopiowania plików za pomocą cmd.
po skopiowaniu przejdź do folderu przez cmd i uruchom polecenie

del *. *
który usuwa pliki, ponieważ folderów nie ma. postać


3
Usuwa pliki w porządku, ale kto powiedział, że nazwy folderów również nie mogą zawierać kropki / kropki?
Karan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.