Co to jest polecenie wiersza polecenia systemu Windows do kopiowania plików?


34

Co to jest polecenie wiersza polecenia systemu Windows do kopiowania plików?

Muszę przenieść plik z lokalizacji A do lokalizacji B. Także jeśli folder dla lokalizacji B nie istnieje, chcę go utworzyć.

Potrzebuję tego jako wiersza poleceń, aby móc go zautomatyzować.

Wersja systemu Windows to XP.


1
robocopydziała również świetnie
Nixphoe

Odpowiedzi:


44

Polecenie xcopyjest tym, czego szukasz. Przykład:

xcopy source destination /E /C /H /R /K /O /Y

Powyższe polecenie skopiuje źródło do miejsca docelowego, plików i katalogów (w tym pustych), nie zatrzyma się na błędzie, skopiuje pliki ukryte i systemowe, nadpisze pliki tylko do odczytu, zachowa atrybuty i informacje o własności / ACL oraz usunie monit o zastąpienie istniejących plików docelowych.

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

Aby uzyskać więcej informacji, wpisz xcopy /?swój wiersz poleceń.


2
Przyszłe wersje systemu Windows obejmują RoboCopy. Z XCOPY Visty: „UWAGA: Xcopy jest teraz przestarzałe, użyj Robocopy”.
George Tsiokos

1
Co ciekawe, dwa lata później po twoim komentarzu, George, xcopy wciąż „rządzi światem” w systemie Windows 7.

Zauważ, że osadzone środowiska Windows XP (POSReady 2009 itp.) Nie są dostarczane z xcopy.
Epoc

Zasugerowałem edycję, aby wyświetlić listę wszystkich tych opcji ...! Jeśli nie automatyzujesz go /E /Hi być może /K /Odostaniesz długą drogę za pomocą kilku przydatnych podpowiedzi
KCD

Nie zapomnij /J, co zapobiega usterce XCopy podczas kopiowania dużych plików. Nie jestem pewien, dlaczego nie
ustawiliby

8

Użyj md, aby utworzyć folder (jest w porządku, jeśli już istnieje)

Użyj kopiuj lub przenieś dla plików, a xcopy dla folderów


Czy możesz podać przykład składni?
David Basarab

3
copy fred.txt copy_of_fred.txt
Adam Gibbins

1
Kopiuj /? poda ci tekst pomocy, coś w rodzaju strony podręcznika DOS.
Scottie T

2

W pliku wsadowym:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not existssprawdza parametr, aby sprawdzić, czy istnieje, ale działa tylko na plikach. Aby sprawdzić istnienie katalogu , musisz poszukać „pseudopliku” o nazwie „nul” - sprawdzenie istnienia tego pliku zawsze zwróci true, jeśli katalog istnieje.

Kopie linia skopiować plik o nazwie filew katalogu locationAdo locationBi nazwy pliku samo. Jeśli chcesz zmienić nazwę pliku w tym samym czasie, możesz to zrobić również:

copy locationA\file locationB\newfilename

2

Jeśli chcesz zsynchronizować kopię i inne zaawansowane funkcje (zignoruj ​​niektóre foldery, uwzględnij tylko niektóre symbole wieloznaczne), spójrz na robocopy. Zawarte w systemie Vista i późniejszych, opcjonalne (z narzędzi zestawu zasobów) we wcześniejszych wersjach.


Jeśli chodzi o coś ważnego, zamierzam również zrobić robocopy. Wydaje mi się, że pamiętam ogromną różnicę wydajności w porównaniu do xcopy podczas synchronizacji dużej liczby plików.
Kara Marfia,

1

Użyj ROBOCOPY, jeśli tworzysz skrypty zapasowe. xcopy zostało wycofane i prawdopodobnie zostanie wycofane z użycia w najbliższej przyszłości. robocopy może zrobić wszystko, co potrafi xcopy. Jest również bardziej elastyczny i niezawodny. Tworzenie skryptów za pomocą robocopy zapewni im ochronę na przyszłość.


  1. Użyj robocopy, aby łatwo skopiować foldery. Polecenie robocopy zastępuje polecenie xcopy. Może szybko kopiować całe foldery bez martwienia się o zdefiniowanie zawartości. Na przykład, aby skopiować całą zawartość katalogu C: \ tools do nowego folderu D: \ backup \ tools, wprowadź następujące dane:

    robocopy C:\tools D:\backup\tools /e
    

    Modyfikator / e mówi robocopy, aby zawierał wszystkie podkatalogi. Obejmuje to puste foldery. robocopy automatycznie skopiuje ukryte i systemowe pliki. Stworzy nowe katalogi, jeśli nie istnieją w docelowej lokalizacji.

  2. Utwórz kopię lustrzaną katalogu. Odbicie lustrzane katalogu doskonale nadaje się do tworzenia kopii zapasowych. Opcja kopii lustrzanej robocopy skopiuje całą zawartość ze źródła do miejsca docelowego. Następnie usunie wszystko w miejscu docelowym, które nie istnieje u źródła. Zapewnia to, że kopia zapasowa zawiera tylko najnowsze wersje plików. Na przykład, aby wykonać kopię lustrzaną C: \ Users \ My Documents do D: \ backup \ My Documents, wprowadź następujące dane: [4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    Ta funkcja zachowa wszystkie uprawnienia do oryginalnych plików.

  3. Włącz ponowne uruchamianie. Możesz włączyć możliwość ponownego uruchomienia procesu w przypadku przerwania połączenia w połowie kopii.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. Zaloguj się proces kopiowania. robocopy umożliwia utworzenie pliku dziennika. Może to pomóc w określeniu problemów lub wygenerowaniu archiwum tego, co zostało skopiowane.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    Modyfikator / log + doda istniejący plik dziennika zamiast nadpisania go. Jeśli wolisz po prostu zastąpić stary plik dziennika, użyj /log:.txt.


0

xcopy utworzy dla ciebie strukturę katalogów. Sztuczka polega na użyciu opcji / I i rzuceniu gwiazdką na końcu nazwy pliku, aby xcopy pomyślało, że kopiujesz wiele plików, w przeciwnym razie zapyta Cię, czy nazwa docelowa to żądana nazwa pliku, czy nazwa katalogu, który chcesz . Na przykład.

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

Chciałbym również spojrzeć na RoboCopy, ale musisz go pobrać z zestawu zasobów, ponieważ nie jest on w systemie Windows aż do Vista.


-1

Powyższe polecenie tworzy dodatkowy poziom katalogu z nazwą pliku źródłowego. Więc ... xcopy / I srcdir \ dir1 \ dir2 \ file1.txt * destdir \ dir1 \ dir2 \ file1.txt powoduje, że destdir \ dir1 \ dir2 \ file1.txt \ file1.txt


1
Nie ma sensu odpowiadać na tak stare pytanie, które ma już zaakceptowaną odpowiedź i nie wnosi żadnej wartości dodanej do twojej odpowiedzi.
alphamikevictor
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.