2010-11-01 21:50:02 +0000 2010-11-01 21:50:02 +0000
72
72

Polecenie z linii poleceń, aby skopiować cały katalog (łącznie z katalogiem) do innego katalogu

za pomocą linii poleceń, chciałbym skopiować jeden katalog do innego. Na przykład jest to katalog C:/test i C:/test2.

Chciałbym skopiować C:/test do C:/test2, tak aby rezultatem było C:/test2/test

Wszystko co do tej pory znalazłem skopiuje tylko pliki i foldery zawarte w C:/test do C:/test2, ale pomija katalog nadrzędny.

Odpowiedzi (10)

52
52
52
2010-11-01 21:52:22 +0000

Spróbuj użyć XCOPY z przełącznikiem /E. Więcej informacji tutaj .

Nie miałem dostępu do tych informacji z mojego mózgu w years!

UPDATE

Dokumentacja mówi, że kopiuje wszystkie pliki i podkatalogi z katalogu źródłowego (co oznacza, że katalog nadrzędny nie jest utworzony), więc trzeba by najpierw utworzyć test w C:\test2, a następnie użyć XCOPY.

21
21
21
2015-11-22 21:23:05 +0000

Użyj ROBOCOPY, jeśli tworzysz skrypty do tworzenia kopii zapasowych. xcopy został przestarzały i prawdopodobnie zostanie wycofany z użycia w najbliższej przyszłości. robocopy może zrobić wszystko, co xcopy może. Jest również bardziej elastyczna i niezawodna. Tworzenie skryptów z wykorzystaniem robocopy zabezpieczy je w przyszłości.

  • *
  1. Używaj robokopii do łatwego kopiowania folderów. Polecenie robocopy zastępuje polecenie xcopy. Może ono szybko skopiować całe foldery bez konieczności definiowania ich zawartości. Na przykład, aby skopiować całą zawartość katalogu C:\narzędzia do nowego folderu D:\narzędzia zwrotne, wpisz:

  2. Zrób kopię lustrzaną katalogu. Kopia lustrzana katalogu jest świetna do tworzenia kopii zapasowych. Opcja robocopii lustrzanej skopiuje całą zawartość ze źródła do miejsca docelowego. Następnie usunie ona wszystko, co nie istnieje w miejscu docelowym. Dzięki temu Twoja kopia zapasowa będzie zawierać tylko najnowsze wersje plików. Na przykład, aby utworzyć kopię lustrzaną C:\Użytkownicy \Moje dokumenty na D:\backup \Moje dokumenty, wprowadź następujące dane:[4]

  3. Włączyć restart. Możesz włączyć możliwość zrestartowania procesu w przypadku, gdy połączenie zostanie przerwane w połowie kopii.

  4. Logowanie procesu kopiowania. robocopy pozwala na utworzenie pliku logu. Może to pomóc w zidentyfikowaniu problemów lub wygenerować archiwum tego, co zostało skopiowane.

8
8
8
2010-11-02 03:09:24 +0000

Polecam robocopy ponad xcopy , ponieważ ma dużo więcej opcji, w tym utrzymanie znaczników czasowych w stanie nienaruszonym, co uważam za istotne.

Robocopy trzeba dodać na XP/2003, ale jest to standard od Vista.

Właściwie to zazwyczaj używam xxcopy , ale 64-bitowa wersja nie jest za darmo.

5
5
5
2012-06-22 06:40:49 +0000
XCOPY SourceDrive: DestinationDrive: /S /E

Na przykład, jeśli potrzebujesz skopiować dane z dysku E: na dysk H: (zewnętrzny dysk twardy) poprzez linię poleceń lub ze środowiska poleceń xboot.

xboot:\>XCOPY E:\ "H:\BackupFolder\" /S /E
3
3
3
2016-04-29 18:29:05 +0000

Jeśli oryginalne pytanie jest tym, na co szukałem odpowiedzi, to ja, i oczywiście nikt powyżej, znalazłem jasne rozwiązanie.

To, czego szukam, to skopiowanie katalogu testowego do katalogu test2 bez konieczności wpisywania go ponownie. Coś w rodzaju

xcopy /isvy c:\test d:\test2

gdzie d:\test2\test nie istnieje przed kopią, ale istnieje po niej. Pozwoliłoby to zaoszczędzić na brakującym wpisaniu testu za drugim razem w ścieżce docelowej. Powyższa komenda skopiuje wszystkie pliki i dowolne katalogi do test2, ale nie utworzy katalogu testowego.

Jak dotąd

xcopy /isvy c:\test d:\test2\test

to naprawdę jedyny sposób, jaki znalazłem, aby wykonać tę pracę. Ponownie, jeśli masz problemy z pisaniem, nie ma gwarancji, że katalogi źródłowe i docelowe będą zgodne.

Alternatywą do poprawienia tego jest

set mydir=test&&xcopy /isvy c:\%mydir% c:\test2\%mydir%

To ustawia katalog docelowy w zmiennej mydir, a następnie używa tej zmiennej zarówno w ścieżce źródłowej jak i docelowej. Jeśli wpiszesz błędną zmienną, otrzymasz albo błąd, albo katalog docelowy będzie miał prawdopodobnie % na początku i końcu.

Jest to dłuższe wpisanie, ale mniej prawdopodobne, że otrzymasz błędną nazwę. Będą one zauważalne.

1
1
1
2016-08-18 22:26:31 +0000
xcopy SWITCHES SOURCE DESTINATION

Gdzie może być SWITCHES:

  • Aby skopiować całą strukturę katalogu:

  • Aby nadpisać pliki w miejscu docelowym (w przypadku gdy folder docelowy już istnieje):

  • Aby nadpisać i również skopiować z ACL+Attribute:

Most pasuje do Twojego przypadku:

xcopy /hievry C:\test C:\test2\test

0
0
0
2017-07-24 12:06:12 +0000

Miałem podobną sytuację, w której musiałem skopiować kilka folderów, w tym nazwy folderów, do docelowej lokalizacji i miałem nadzieję, że to pytanie oznaczone odpowiedzią pomoże, ale tak naprawdę nie pomaga.

Po pierwsze, na pewno są okazje, kiedy trzeba by było skopiować foldery z C:\Windows\Assembly\GAC_MSIL. Eksplorator Windows odmawia pokazania tego folderu, więc musisz użyć zachęty komend.

Jeśli znasz folder GAC, wiesz, że nazwy folderów są nietrywialne i łatwo się pomylić, jeśli się pomylisz.

Tak więc wcześniejsze utworzenie katalogu nie jest tak naprawdę opcją - chyba że użyjesz skryptu - którego użyłem, ponieważ było to jedyne prawdziwe rozwiązanie.

Najpierw zrzuć foldery, które chcesz skopiować do pliku tymczasowego, zazwyczaj opiera się to na jakimś wzorze, np.

dir /B policy* > Folders.txt

Następnie zapętlić się nad wpisami w zrzucie i skopiować do miejsca docelowego. Xcopy zajmie się utworzeniem folderu, jeśli argument docelowy zakończysz odwrotnym ukośnikiem ()

for /F "tokens=*" %%A in (Folders.txt) do xcopy /E /S %%A C:\Dest\%%A\

Umieść oba te polecenia w pliku wsadowym i uruchom.

Teraz, jeśli tylko xcopy lub robocopy mają to wbudowane.

0
0
0
2018-12-07 17:07:00 +0000

Doszedłem do funkcjonalnej, alternatywnej odpowiedzi na Twoje pytanie.

Po pierwsze, użycie FORFILES z parametrem /S daje pewność, że każdy podkatalog w C:\test będzie osiągalny.

Po drugie, z parametrem /C, możliwe jest uruchomienie łańcucha poleceń z natywnymi zmiennymi, co pozwala na tworzenie katalogów ident ident w miejscu docelowym, a THEN kopiowanie plików do wewnątrz, przy użyciu dwóch struktur warunkowych.

Pierwsza struktura warunkowa @isdir==TRUE (upewnij się, że używasz dużych liter), pozwala na uzyskanie katalogów tylko ze źródła, a następnie utworzenie ich na miejscu przeznaczenia za pomocą MKDIR [path]\@relpath na końcu.

Na koniec druga upewnia się, że pracuje z plikami tylko z @isdir==FALSE, a następnie polecenie KOPIUJ po prostu wykonuje zadanie, uzyskując wszystkie pliki docierające za pomocą polecenia FORFILES, ustawiając [path]@relpath jako miejsce docelowe, aby skopiować pliki do wewnątrz właśnie utworzonych katalogów.

Nadzieja, która pomaga wszystkim wokół.

0
0
0
2018-05-15 05:24:03 +0000

XCOPY SourceDrive: DestinationDrive: /S /E

-2
-2
-2
2010-11-02 05:24:21 +0000

To zrobi to z GUI, nie wiem jak oni to robią.

“…mały program pozwoli ci wybrać "z katalogu” i “do katalogu”, a następnie przejdzie do kopiowania TYLKO struktury katalogów.“ http://www.rjlsoftware.com/software/utility/treecopy/