Xcopy d не копіюється нові. Командний рядок xcopy. Опис команди XCOPY

На відміну від утиліти COPY, команда XCOPY також дозволяє скопіювати файл через командний рядок, але має більшу кількість функції. Однак, слід зазначити, що XCOPY дає можливість працювати лише з файлами та каталогами, але не з пристроями (наприклад, принтер). Але, як завжди, спочатку трохи лірики.

У минулі часи у мене був диск з операційною системою Windows XP Sp1, на той час не було інсталяційних дисків з авто запуском, тому доводилося спочатку входити в командну оболонку, а вже потім запускати на диску інсталяційний файл. Диск був досить уже пошарпаний, виднілися маленькі дірочки, але як не дивно, за допомогою старого доброго Волкова командера мені вдавалося скопіювати всі файли через командний рядок, хоч і не з першої спроби. Мало того, часом були часи коли система злітала під корінь, і мені доводилося вручну копіювати з одного гвинта на інший, займало цю добу.

Копіює файли та каталоги, включаючи підкаталоги. Якщо будь-який з перелічених рядків відповідає будь-якій частині абсолютного шляху файлу, який буде скопійований, цей файл виключається з процесу копіювання. За промовчанням вам буде запропоновано перезаписати, якщо ви не запустите копію з пакетного скрипта. Щоб додати файли, вкажіть один файл, але кілька файлів для джерела. Стандартне значення для призначення. У наступній таблиці перераховані кожен код виходу та опис. Файли були скопійовані без помилок. Сталася помилка ініціалізації. Недостатньо пам'яті або місця на диску, або ввели неприпустиме ім'я диска або неправильний синтаксис у командному рядку. Багато людей шукають різні інструменти резервного копіюванняабо синхронізації даних і дуже добре - тому, що кожен пошук збільшує наш багаж знань.

Командний рядок xcopy

XCOPY джерело [результат] ] ]

[+ файл 3]...]

Джерело- Вказуємо шлях до файлу (файлів), який потрібно скопіювати.

Результат- Вказуємо місце, куди потрібно скопіювати файл через командний рядок. Якщо цей параметр відсутній, документи будуть дублюватися в поточний каталог.

Відповідаючи на запитання про назву – ті, хто щодня пише сценарії, знають, що справді багато. Але це ті, хто зазнає невдачі, і прості рішення- це найкращі. Насправді команда може бути оснащена певними комутаторами, і ми зазвичай створюємо пакетний файл.

Зрозуміло, перемикачі вибираються довільно на розсуд та потреби. Кожен рядок повинен знаходитись у окремому рядку у файлах. Якщо рядок відповідає будь-якій частині абсолютного шляху скопійованого файлу, файл не буде скопійовано. Експерти та професіонали люблять командний рядок через розширені дії та елементи управління, якими ви можете керувати. Але це не означає, що це корисно лише для просунутих користувачів. Зрештою, кожен експерт був новачком свого часу.

/V- Як і в попередній версії, даний параметр відповідає за перевірку тілесності документів, проте, вже не є обов'язковим, оскільки перевірка здійснюється системою. Він залишився лише для сумісності з попередніми версіями MS-DOS.

/EXCLUDE:файл1[+файл 2][+ файл 3]… – дозволяє виключити кілька файлів чи папок із процесу копіювання. Тут все просто, треба тільки вказати імена об'єктів, які слід виключити, але не можна використовувати спецсимволи, типу «*» і «?». Ключі файл1, файл2, … вказують на документи, в яких прописані рядки, кожен рядок повинен перебувати в окремій лінії. Якщо ж хоч один з рядків збігатиметься з будь-якою частиною абсолютного шляху документа, що копіюється, то скопіювати за допомогою командного рядка даний файлне вийде. Допустимо в каталозі D:DATA є три документи з розширенням txt: data1.txt, data2.txt та data3.txt. Відкриємо CMD та пропишемо в ній наступні команди:

І командний рядок не призначений для запуску лише розширених команд, але також для запуску простих команд для основних операцій. У цій статті ми покажемо вам, як запускати такі команди, як зміна робочої папки, перегляд вмісту папки, створення та перейменування папок, копіювання, видалення файлів та папок та запуск програми безпосередньо з командного рядка.

Як отримати доступ до конкретного жорсткого диска або розділу

Ви побачите, що ця команда приведе вас до кореня диска. Імена підпапок мають бути розділені символом \\. Щоб отримати доступ до іншого жорсткого диска, напишіть лист, призначений йому, а потім «:».

Як ви бачите вміст папки

Відображається список файлів та папок, а також деякі відомості про них. У списку з'явиться новостворена папка. Інший спосіб створити папку, для якої вам не потрібно знаходитись у тому місці, де вона буде створена, - це ввести весь свій шлях.

echo data1.txt>exclude.txt

echo data2.txt>>exclude.txt

У цьому прикладі ми створили у поточному каталозі текстовий документ exlude.txt, у якому прописані два рядки data1.txt і data2.txt. Символ «>>» відрізняється від символу «>» лише тим, що дописує дані до кінця документа, а не затирає весь вміст новою інформацією. Гаразд, тепер спробуємо виконати такі директиви:

XCOPY *.txt D:DATA/EXCLUDE: exclude.txt – у цьому прикладі з поточної папки до папки D:DATA ми скопіювали всі документи з розширенням txt крім файлів data1 та data2.

Інший приклад, якщо вказати рядки виду OBJ або .OBJ, то з процесу будуть виключені всі об'єкти з OBJ папки і всі об'єкти з розширенням.OBJ.

/Z– дозволяє дублювати мережеві документи з поновленням.

Як відомо, файлова система приписує кожному файлу/документу власника, зазвичай це той користувач, який створив даний документ. При використанні команд і XCOPY командного рядка інформація про старого власника затирається, і власником копії стає той користувач, під обліковим записомякого власне і проводилося копіювання файлів із командного рядка.

і /M– встановлюємо режим для архівних документів. Перший ключ після дублювання об'єкта залишає в нього атрибут «Архівний», другий ключ відключає цей атрибут після завершення процесу маніпуляцій.

/O– цей параметр дозволяє скопіювати тільки ті дані, які були змінені не раніше зазначеної дати (дата у вказується в атрибуті /D[:дата], якщо сама дата не вказана, то копіювання буде проводитися, тільки якщо джерело новіше результату). Наприклад:

XCOPY "C:My document*.*" "D:RESERVEMy document" /D

Тут буде зроблено копіювання лише тих файлів через командний рядок, які були змінені з часу останнього подібного маніпулювання або яких взагалі не було D: RESERVEMy document.

/S– цей ключ вказує, що крім документів треба зробити копіювання папки, за умови, що вона (вони) не є порожньою.

– цей ключ подібний до попереднього, з тією лише різницею, що дозволяє зробити копіювання порожньої папки через командний рядок.

/W– буде увімкнено режим запиту на натискання будь-якої клавіші перед початком дублювання.

/C– процес копіювання буде продовжено, навіть якщо сталася помилка

/I– Цей ключ каже, що об'єкт призначення має бути каталогом. Наприклад, якщо задати ключ /Iу команді копіювання всіх об'єктів з розширенням txt з поточного каталогу до неіснуючого підкаталогу TEXT:

XCOPY *.txt TEXT /I

підкаталог TEXT буде створено без додаткових запитів.

/Q– цей ключ не відображатиме імена під час процесу

/F– цей ключ відображатиме повні шляхи джерела та результату під час процесу

/L- Це ключ всього лише відобразить ті документи, які треба скопіювати, при цьому сам процес не відбудеться.

/H– дозволяє дублювати приховані та системні документи.

/K- замінювати об'єкти з атрибутом "Тільки для читання"

/T– створює зліпок структури копіюваних папок, але самих документів не копіює, також не включаються порожні каталоги. Для того щоб все ж таки включити порожні каталоги та підкаталоги, потрібно використовувати комбінацію ключів /T /Е.

/U– оновлює вміст каталогу, тобто копіює лише ті файли, що вже є в каталозі.

/Yі /-Yвизначають, чи потрібно вимагати підтвердження перед заміною. /Yозначає, що такий запит потрібен, /-Y- не потрібен.

/N- Копіювання за допомогою командного рядка з використанням згенерованих коротких імен.

Як уже згадувалося вище, при використанні утиліт COPY та XCOPY інформація про колишнього власника затирається. Щоб цього не відбувалося, можна скористатися командою SCOPYз пакета Resource Kitяка має наступний синтаксис:

SCOPY джерело [результат]

/Про– дозволяє дублювати інформацію про власника

– дублювання інформації пов'язаної з аудитом доступу до файлу чи каталогу

/S- Копіювання файлів через командний рядок з усіх підкаталогів зазначеного каталогу.

Запис у потоки NTFS

І ще хотілося б згадати про таке поняття як «копіювання в потоки». Дане питання я частково торкнувся статті з прикладами по описі методу об'єкт FileSystemObject. Ця можливість надається лише у файловій системі NTFS. У простому варіантісуть справи така, до кожного документа чи диску можна прив'язати свій потік, і записати інформацію безпосередньо в потік, тобто, інформація буде записана, але документ не змінить свого розміру. Давайте проробимо простенький експеримент, пропишемо в командному рядку:

echo “Hellow, word”>new.txt:potok.txt – у цьому прикладі ми створили текстовий документ new.txt, а фразу Hellow, word скопіювали в потік potok.txt. Якщо виконати команду notepad new.txt, ми нічого не побачимо, але, якщо виконати так:

notepad new.txt.potok.txt– то побачимо заповітну фразу Hellow, word.

Командний рядоккоманда xcopy.

При видаленні файлу видаляється і потік, прив'язаний до нього. Є один досить примітивний спосіб дізнатися, що в нашому нібито порожньому документі щось зашито, це помістити його в архів, як наслідок, нульовий розмір документа збільшиться при архівуванні.

Копіює файли та каталоги, включаючи підкаталоги.

Синтаксис

xcopy джерело [результат] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[: мм-дд-гггг]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:файл1[ + [файл2]][+ [файл3]] [{/y|/-y}] [/z]

Параметри

джерело Обов'язковий параметр. Визначає місцезнаходження та імена файлів для копіювання. Параметр повинен задавати диск або шлях. результат Задає місце, куди будуть скопійовані файли. Параметр може включати ім'я диска з двокрапкою, ім'я каталогу, ім'я файлу або комбінацію. /w Виводить наступне повідомлення з очікуванням підтвердження початку копіювання:

Натисніть будь-яку клавішу, щоб розпочати копіювання файлів

/p Запитує підтвердження під час створення кожного файлу-результату. /c Ігнорує помилки. /v Перевіряє кожен скопійований файл на відповідність його оригіналу. /q Скасує виведення на екран повідомлень команди xcopy. /f Виводить імена вихідних файлів та файлів-результатів у процесі копіювання. /l Відображає список файлів, що копіюються. /g Створює незашифровані файли-результати. /d[: мм-дд-гггг] Копіює лише файли, змінені не раніше заданої дати. Якщо не ввімкнути значення мм-дд-гггг, команда xcopyкопіює всі файли- джерела, які новіші за існуючі файли- результатів. Ця можливість дозволяє оновлювати лише змінені файли. /u Копіює (оновлює) тільки ті файли- джерела, які вже існують у каталозі результату. /i Якщо джереломє каталог або джерело містить знаки підстановки та результатне існує, команда xcopyвважає, що результатце ім'я каталогу і створює новий каталог. Потім xcopyкопіює всі вказані файли до нового каталогу. За замовчуванням команда xcopyзапитує підтвердження, чи є параметр результаткаталогом чи файлом. /s Копіює каталоги та підкаталоги, якщо вони не порожні. Якщо параметр /sне заданий, команда xcopyбуде працювати лише з одним каталогом. /e Копіює всі підкаталоги, включаючи порожні. Параметр /eвикористовується з параметрами /sі /t. /t Копіює лише структуру підкаталогу (тобто дерево), а чи не файли. Для копіювання порожніх каталогів слід задати ключ /e. /k Копіює файли з атрибутом «лише для читання», щоб зберегти цей атрибут для скопійованих файлів, оригінали яких мають цей атрибут. За замовчуванням команда xcopyвидаляє атрибут "тільки для читання". /r Копіює файли з атрибутом лише для читання. /h Копіює системні та приховані файли. За замовчуванням команда xcopyне копіює системні та приховані файли. /a Копіює лише файли, які мають встановлений атрибут «архівний». При використанні параметра /aатрибут "архівний" у вихідних файлів не змінюється. Відомості про встановлення атрибутів за допомогою команди attrib. /m Копіює лише файли, які мають встановлений атрибут «архівний». На відміну від параметра /a, параметр /mочищає атрибут "архівний" у скопійованих файлів. Відомості про встановлення атрибутів за допомогою команди attrib. /n Копіює короткі імена файлової системи NTFS. Параметр /nпотрібно при копіюванні з файлової системи NTFS у файлову систему FATабо коли на диску-результаті потрібне використання угоди про імена файлів як у файловій системі FAT (8.3). Файли можуть записуватися в файлову систему FAT чи NTFS. /o Копіює відомості про належність файлів та виборчу таблицю керування доступом (DACL). /x Копіює відомості про параметри аудиту файлу та системну таблицю керування доступом (SACL) (мається на увазі наявність /p). /exclude:файл1[+ [файл2]][+ [файл3]] Визначає список файлів, що містять рядки. /y Усуває видачу запиту на підтвердження перезапису існуючого файлу. /-y Видає запит на підтвердження перезапису існуючого файлу. /z Копіює мережу в режимі перезапуску. /? Відображає довідку командного рядка.

Примітки

  • Використання параметра /v

    Починаючи з Windows XP, ця команда не використовується. Вона призначена для забезпечення сумісності із файлами MS-DOS

  • Використання параметра /exclude

    Порядковий виведення всіх рядків у кожному файлі. При відповідності виведеного рядка частини шляху файлу, що копіюється, він виключається з процесу копіювання. Наприклад, якщо вказано рядок "Obj", виключається всі файли, розташовані в каталозі "Obj". Наприклад, якщо вказано рядок ".obj", виключається всі файли з розширенням.obj.

  • Використання параметра /z

    Якщо під час фази копіювання втрачається мережне підключення(наприклад, якщо сервер переходить автономний режим, розриваючи підключення), копіювання відновлюється після відновлення підключення. Використання параметра /zкоманда викликає також відображення частки (у відсотках) завершеної операції копіювання для кожного файлу.

  • Використання параметра /yу змінному середовищі COPYCMD.

    Можна використовувати параметр /yу змінному середовищі COPYCMD. Ця установка може бути перевизначена за допомогою параметра /-yу командному рядку. За замовчуванням якщо команда copyвиконується над пакетної програмі, при заміні потрібно підтвердження.

  • Копіювання зашифрованих файлів

    При копіюванні файлів на тому, що не підтримує шифровану файлову систему (EFS), виникне помилка. Слід попередньо розшифрувати файли або копіювати їх на тому, що підтримує EFS.

  • Додавання файлів

    Щоб об'єднати файли, вкажіть один файл-результат, але кілька файлів-джерел (за допомогою значень підстановки або формату файл1+файл2+файл3).

  • Значення за замовчуванням для результату

    Якщо параметр результатне заданий, xcopyкопіюватиме файли в поточний каталог.

  • Вказівка ​​як результатуфайлу або каталогу

    Якщо параметр результатне містить каталок або не закінчується зворотною рисою(\), виводиться наступне повідомлення:

    Що означає destination:
    ім'я файлу або каталогу
    (F = файл, D = каталог)?

    Натисніть кнопку F, якщо файл або файли повинні копіюватися у файл. Натисніть кнопку D, якщо файл або файли повинні копіюватися в каталог.

    Щоб усунути виведення цього повідомлення, скористайтеся параметром /i. В результаті чого, команда xcopyпередбачає, що результат є каталогом, якщо джерело є кілька файлів або каталогів.

  • Використання команди xcopyдля встановлення атрибута "архівний" для файлів результату

    Команда xcopyстворює файли з встановленим атрибутом"архівний", незалежно від стану цього атрибута у вихідних файлів. Для отримання додаткових відомостей про атрибути файлів команді attrib.

  • Порівняння команд xcopyта diskcopy

    Команда xcopyмає бути використана замість diskcopyпід час копіювання файлів та підкаталогів на диск іншого формату. Оскільки команда diskcopyкопіює диски по доріжках, потрібно, щоб вихідний диск і результат мали однаковий формат. Для команди xcopyця вимога не потрібна. Зазвичай слід використовувати команду xcopy, якщо не потрібно отримати два диски з однаковими образами.

  • Коди завершення програми xcopy

    Для аналізу кодів завершення, виведених командою xcopy, використовуйте параметр рівень_помилкиу командному рядку ifпакетних програм. Щоб побачити приклад пакетної програми, що обробляє коди завершення за допомогою . У наступній таблиці наведено коди завершення з коротким описом.

приклади

Щоб скопіювати всі файли та підкаталоги (включаючи порожні підкаталоги) з диска A на диск B, введіть:

Xcopy a: b: /s /e

Щоб включити в операцію копіювання попереднього прикладу, системні та приховані файли слід використовувати параметр /h:

xcopy a: b: /s /e /h

Щоб оновити файли в каталозі \Reports файлами з каталогу \alldata, зміненими після 29 грудня 2013 року, введіть:

Xcopy \alldata \reports /d:29-12-2013

Щоб оновити файли попереднього прикладу, які вже існують у каталозі \Reports, незалежно від їх дати, введіть наступну команду:

Xcopy \alldata \reports /u

Щоб отримати список файлів, які були б скопійовані в попередньому прикладі, слід ввести:

Xcopy \alldata \reports /d:29-12-20133 /l > xcopy.out

Список файлів, які були б скопійовані, міститься у файлі Xcopy.out.

Щоб скопіювати каталог \Customer і всі підкаталоги \Public\Address на мережевий диск H, зберегти у файлів атрибут "тільки для читання", введіть команду:

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

Щоб видати попередню команду, переконайтеся, що команда xcopyстворює каталог \Address і усунути висновок повідомлення про створення нового каталогу, додайте параметр /iнаступним чином:

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

Для запуску програми xcopyта аналізу кодів завершення можна створити пакетний файл і використовувати оператор для обробки кодів завершення у разі виникнення помилок. Наприклад, наступна пакетна програма використовує параметри, що заміщуються для завдання джерела xcopyта результату:

@echo off rem COPYIT.BAT копіює всі файли у всіх підкаталогах rem вихідного диска або каталогу (%1) на інший диск rem або в інший каталог (%2) xcopy %1 %2 /s /e if errorlevel 4 goto 2 goto abort if errorlevel 0 goto exit:lowmemory echo Недостатньо пам'яті для копіювання файлів, echo задано неприпустимий диск або помилка в синтаксисі. goto exit:abort echo Натиснута комбінація CTRL+C для зупинки копіювання. goto exit:exit

Ця пакетна програма може бути використана для копіювання всіх файлів каталогу C: \ Prgmcode та його підкаталогів на диск B наступним чином:

copyit c:\prgmcode b:

Де copyit - ім'я командного файлу, текст якого наведено вище.
Командний інтерпретатор підставляє C:Prgmcode замість параметра %1 та B замість параметра %2 , потім використовує команду xcopyз параметрами /eі /s. Якщо під час виконання xcopyсталася помилка, пакетна програма зчитує код завершення та переходить на мітку, вказану у відповідній інструкції IF ERRORLEVEL. В результаті на екран виводиться повідомлення про характер помилки та здійснюється вихід із пакетної програми.

Слід зазначити, що XCOPY варта роботи з файлами і каталогами, але з пристроями (наприклад, з принтером).

Для питань, обговорень, зауважень, пропозицій тощо можна використовувати розділ форуму цього сайту (потрібна реєстрація).

Сподобалася стаття? Поділіться з друзями!