Udostępnij za pośrednictwem


xcopy (kopia doskonała)

Kopiuje pliki i katalogi, w tym podkatalogi.

Przykłady użycia tego polecenia można znaleźć w temacie Przykłady.

Składnia

xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j] [/compress]

Parametry

Parametr Opis
<Źródło> To jest wymagane. Określa lokalizację i nazwy plików, które chcesz skopiować. Ten parametr musi zawierać dysk lub ścieżkę.
[<Miejsce docelowe>] Określa miejsce docelowe plików, które chcesz skopiować. Ten parametr może zawierać literę dysku i dwukropek, nazwę katalogu, nazwę pliku lub kombinację tych parametrów.
/w Wyświetla następujący komunikat i czeka na odpowiedź przed rozpoczęciem kopiowania plików:
Naciśnij dowolny, aby rozpocząć kopiowanie plików
/p Monituje o potwierdzenie, czy chcesz utworzyć każdy plik docelowy.
/c Ignoruje błędy.
/v Sprawdza, czy każdy plik jest zapisywany w pliku docelowym, aby upewnić się, że pliki docelowe są identyczne z plikami źródłowymi.
/q Pomija wyświetlanie komunikatów xcopy .
/f Wyświetla nazwy plików źródłowych i docelowych podczas kopiowania.
/l Generuje listę plików, które mają zostać skopiowane, ale nie kopiuje aktywnie plików.
/g Tworzy odszyfrowane pliki docelowe, gdy miejsce docelowe nie obsługuje szyfrowania.
/d [:MM-DD-RRRR] Kopiuje pliki źródłowe zmienione tylko w określonej dacie lub po określonej dacie. Jeśli nie dołączysz wartości MM-DD-RRRR , xcopy kopiuje wszystkie pliki źródłowe , które są nowsze niż istniejące pliki docelowe . Ta opcja wiersza polecenia umożliwia aktualizowanie zmienionych plików.
/u Kopiuje pliki ze źródła , które istnieją tylko w miejscu docelowym .
/ja Jeśli źródło jest katalogiem lub zawiera symbole wieloznaczne i miejsce docelowe nie istnieje, zakłada się, xcopy że miejsce docelowe określa nazwę katalogu i tworzy nowy katalog. xcopy Następnie kopiuje wszystkie określone pliki do nowego katalogu. Domyślnie monituje o określenie, xcopy czy miejscem docelowym jest plik, czy katalog.
/ s Kopiuje katalogi i podkatalogi, chyba że są puste. Jeśli pominięto /s, xcopy działa w jednym katalogu.
/e Kopiuje wszystkie podkatalogi, nawet jeśli są puste. Użyj /e z /s i /t opcji wiersza polecenia.
/t Kopiuje strukturę podkatalogu (czyli tylko drzewo), a nie pliki. Aby skopiować puste katalogi, należy dołączyć / e opcji wiersza polecenia.
/k Kopiuje pliki i zachowuje atrybut tylko do odczytu w plikach docelowych , jeśli znajdują się w plikach źródłowych . Domyślnie xcopy usuwa atrybut tylko do odczytu.
/r Kopiuje pliki tylko do odczytu.
/h Kopiuje pliki z ukrytymi i systemowymi atrybutami plików. Domyślnie xcopy nie kopiuje ukrytych ani systemowych plików
/a Kopiuje tylko pliki źródłowe , które mają ustawione atrybuty pliku archiwum. /a nie modyfikuje atrybutu pliku archiwum pliku źródłowego. Aby uzyskać informacje o sposobie ustawiania atrybutu pliku archiwum przy użyciu attrib, zobacz Powiązane linki.
/m Kopiuje pliki źródłowe , które mają zestaw atrybutów pliku archiwum. W przeciwieństwie do /a, /m wyłącza atrybuty pliku archiwum w plikach określonych w źródle. Aby uzyskać informacje o sposobie ustawiania atrybutu pliku archiwum przy użyciu attrib, zobacz Powiązane linki.
/n Tworzy kopie przy użyciu krótkich nazw plików lub katalogów NTFS. /n jest wymagany w przypadku kopiowania plików lub katalogów z woluminu NTFS do woluminu FAT lub gdy konwencja nazewnictwa systemu plików FAT (czyli 8,3 znaków) jest wymagana w docelowym systemie plików. Docelowy system plików może być FAT lub NTFS.
/o Kopiuje informacje o własności plików i uznaniowej liście kontroli dostępu (DACL).
/x Kopiuje ustawienia inspekcji plików i informacje o systemowej liście kontroli dostępu (SACL) (implikuje /o).
/exclude:NazwaPliku1[+[NazwaPliku2]][+[NazwaPliku3]( )] Określa listę plików. Należy określić co najmniej jeden plik. Każdy plik zawiera ciągi wyszukiwania z każdym ciągiem w osobnym wierszu w pliku. Gdy dowolny z ciągów jest zgodny z dowolną częścią ścieżki bezwzględnej pliku do skopiowania, ten plik jest wykluczony z kopiowania. Na przykład określenie ciągu obj spowoduje wykluczenie wszystkich plików pod katalogiem obj lub wszystkich plików z rozszerzeniem .obj .
/ y Pomija monit o potwierdzenie, że chcesz zastąpić istniejący plik docelowy.
/ y Monituje o potwierdzenie, że chcesz zastąpić istniejący plik docelowy.
/z Kopie za pośrednictwem sieci w trybie ponownego uruchamiania.
/b Kopiuje link symboliczny zamiast plików. Ten parametr został wprowadzony w systemie Windows Vista®.
/j Kopiuje pliki bez buforowania. Zalecane w przypadku bardzo dużych plików. Ten parametr został dodany w systemie Windows Server 2008 R2.
/kompresować Żądaj kompresji sieci podczas transferu plików, jeśli ma to zastosowanie.
/[-]rozrzedłe Włącza lub wyłącza zachowywanie stanu rozrzednia plików podczas procesu kopiowania. Jeśli określono oba parametry, /-rozrzedlić zastąpi /rozrzedlić.
/noclone Nie próbuje blokować klonowania jako optymalizacji.
/? Wyświetla pomoc w wierszu polecenia.

Uwagi

  • Korzystanie z /z

    Jeśli utracisz połączenie w fazie kopiowania (na przykład jeśli serwer przechodzi w tryb offline, połączenie zostanie wznowione po ponownym opublikowaniu połączenia. /z wyświetla również procent ukończonej operacji kopiowania dla każdego pliku.

  • Za pomocą /y w zmiennej środowiskowej COPYCMD.

    Można użyć /y w zmiennej środowiskowej COPYCMD. To polecenie można zastąpić za pomocą polecenia /-y w wierszu polecenia. Domyślnie zostanie wyświetlony monit o zastąpienie.

  • Kopiowanie zaszyfrowanych plików

    Kopiowanie zaszyfrowanych plików do woluminu, który nie obsługuje systemu szyfrowania plików, powoduje wystąpienie błędu. Odszyfruj pliki jako pierwsze lub skopiuj pliki do woluminu, który obsługuje system szyfrowania plików.

  • Dołączanie plików

    Aby dołączyć pliki, określ pojedynczy plik dla miejsca docelowego, ale wiele plików dla źródła (czyli przy użyciu symboli wieloznacznych lub pliku1+plik2+plik3 format).

  • Wartość domyślna miejsca docelowego

    Jeśli pominięto miejsce docelowe, xcopy polecenie kopiuje pliki do bieżącego katalogu.

  • Określanie, czy lokalizacja docelowa jest plikiem, czy katalogiem

    Jeśli miejsce docelowe nie zawiera istniejącego katalogu i nie kończy się ukośnikiem odwrotnym (), zostanie wyświetlony następujący komunikat:

    Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
    

    Naciśnij F, jeśli chcesz skopiować plik lub pliki do pliku. Naciśnij D, jeśli chcesz skopiować plik lub pliki do katalogu.

    Ten komunikat można pominąć przy użyciu / i opcji wiersza polecenia, co powoduje xcopy założenie, że miejsce docelowe jest katalogiem, jeśli źródło jest więcej niż jeden plik lub katalog.

  • Używanie polecenia do ustawiania atrybutu xcopy archiwum dla plików docelowych

    Polecenie xcopy tworzy pliki z zestawem atrybutów archiwum, niezależnie od tego, czy ten atrybut został ustawiony w pliku źródłowym. Aby uzyskać więcej informacji na temat atrybutów plików i attrib, zobacz Powiązane linki.

  • Porównywanie xcopy i diskcopy

    Jeśli masz dysk zawierający pliki w podkatalogach i chcesz skopiować go na dysk, który ma inny format, użyj xcopy polecenia zamiast diskcopy. diskcopy Ponieważ polecenie kopiuje dyski śledzone według śledzenia, dyski źródłowe i docelowe muszą mieć ten sam format. Polecenie xcopy nie ma tego wymagania. Użyj xcopy , chyba że potrzebujesz pełnej kopii obrazu dysku.

  • Błąd niewystarczającej pamięci

    Może wystąpić błąd "niewystarczająca ilość pamięci" w przypadku uruchomienia xcopy polecenia w celu skopiowania pliku lub folderu, którego ścieżka nazwy pliku jest większa niż 255 znaków.

  • Kody zakończenia dla xcopy

    Aby przetworzyć kody zakończenia zwrócone przez xcopyprogram , użyj parametru ErrorLevel w wierszu polecenia if w programie wsadowym. Aby zapoznać się z przykładem programu wsadowego, który przetwarza kody zakończenia przy użyciu polecenia if, zobacz Powiązane linki. W poniższej tabeli wymieniono każdy kod zakończenia i opis.

    Kod zakończenia Opis
    0 Pliki zostały skopiowane bez błędu.
    1 Nie znaleziono żadnych plików do skopiowania.
    2 Użytkownik nacisnął CTRL+C, aby zakończyć działanie xcopy.
    4 Wystąpił błąd inicjowania. Za mało pamięci lub miejsca na dysku albo wprowadzono nieprawidłową nazwę dysku lub nieprawidłową składnię w wierszu polecenia.
    5 Wystąpił błąd zapisu dysku.

Przykłady

1. Aby skopiować wszystkie pliki i podkatalogi (w tym wszystkie puste podkatalogi) z dysku A do dysku B, wpisz:

xcopy a: b: /s /e

2. Aby uwzględnić dowolny system lub ukryte pliki w poprzednim przykładzie, dodaj / h opcji wiersza polecenia w następujący sposób:

xcopy a: b: /s /e /h

3. Aby zaktualizować pliki w katalogu \Reports przy użyciu plików w katalogu \Rawdata, które uległy zmianie od 29 grudnia 1993 r., wpisz:

xcopy \rawdata \reports /d:12-29-1993

4. Aby zaktualizować wszystkie pliki, które istnieją w \Reports w poprzednim przykładzie, niezależnie od daty, wpisz:

xcopy \rawdata \reports /u

5. Aby uzyskać listę plików do skopiowania przez poprzednie polecenie (czyli bez faktycznego kopiowania plików), wpisz:

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

Plik xcopy.out zawiera listę każdego pliku, który ma zostać skopiowany.

6. Aby skopiować katalog \Customer i wszystkie podkatalogi do katalogu \\Public\Address na dysku sieciowym H:, zachować atrybut tylko do odczytu i wyświetlić monit o utworzenie nowego pliku w H:, wpisz:

xcopy \customer h:\public\address /s /e /k /p

7. Aby wydać poprzednie polecenie, upewnij się, że xcopy tworzy katalog \Address, jeśli nie istnieje, i pomiń komunikat wyświetlany podczas tworzenia nowego katalogu, dodaj / i opcji wiersza polecenia w następujący sposób:

xcopy \customer h:\public\address /s /e /k /p /i

8. Możesz utworzyć program wsadowy do wykonywania xcopy operacji i używać partii , jeśli polecenie przetwarza kod zakończenia, jeśli wystąpi błąd. Na przykład następujący program wsadowy używa parametrów możliwych do zastąpienia dla parametrów źródłowych xcopy i docelowych:

@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit

Aby użyć poprzedniego programu wsadowego do skopiowania wszystkich plików w katalogu C:\Prgmcode i jego podkatalogów do dysku B, wpisz:

copyit c:\prgmcode b:

Interpreter poleceń zastępuje kod C:\Prgmcode dla %1 i B: dla %2, a następnie używa z xcopy/e i /s opcji wiersza polecenia. Jeśli xcopy wystąpi błąd, program wsadowy odczytuje kod zakończenia i przechodzi do etykiety wskazanej w odpowiedniej instrukcji IF ERRORLEVEL , a następnie wyświetla odpowiedni komunikat i kończy działanie z programu wsadowego.

9. Ten przykład kopiuje wszystkie niepuste katalogi oraz pliki ze skojarzonym rozszerzeniem pliku po symbolu gwiazdki.

xcopy .\toc*.yml ..\..\Copy-To\ /S /Y

rem Output example.
rem  .\d1\toc.yml
rem  .\d1\d12\toc.yml
rem  .\d2\toc.yml
rem  3 File(s) copied

W poprzednim przykładzie ta określona wartość parametru źródłowego .\toc*.yml kopiuje te same 3 pliki, nawet jeśli jego dwa znaki ścieżki .\ zostały usunięte. Jednak żadne pliki nie zostaną skopiowane, jeśli symbol wieloznaczny gwiazdki został usunięty z parametru źródłowego, co spowoduje, że tylko .\toc.yml.