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.