Утиліти copy і replace - копіювання і заміна файлів через командний рядок

Мабуть, будь-який програміст стикався з питанням написання функції для копіювання каталогу з файлами. Як правило, ці завдання вирішувалися при використанні рекурсії. У минулі часи, не було мишки і правого кліка з вкладкою «копіювати, вирізати, вставити», та й синій Волков не відразу з'явився. Це тепер все так звично, сидиш за клавіатурою, встромляєш в зелене поле Вінди, клік туди, клік сюди, і все, завдання вирішив. Але, бували і важкі ситуації, коли доводилося вдаватися до синього менеджеру. Як не дивно, але командний рядок і її утиліти від версії до версії змінюють свій вигляд, Є навіть цілий набір утиліт типу PsUtils, які ефективніше стандартних ДОСовскіх. Логічне запитання, кому це все треба! Який сенс винаходити сучасного динозавра, йоп ті! З іншого боку, така наша природа людська, ми готові навіть велосипед знову винайти, аби зайняти свій розум.
/ D - вказує на можливість створення зашифрованого файлу.
/ Y | / -Y - якщо обраний перший параметр, то будуть відсутні запити системи на підтвердження під час копіювання (простіше кажучи, якщо доведеться топкою тисячі файлів копіювати, то на кожний не буде вистрибувати набридливе "а ви впевнені, чи, може, одного зателефонуйте?" ), зрозуміло, що другий параметр як раз те включає запит підтвердження.
/ Z - дозволяє копіювати дані по мережі, до речі, в попередніх варіантах даної утиліти цього ключа не спостерігалося.
/ V - даний параметр включає перевірку правильності копіювання, порівнюючи дані після завершення процедури.
Припустимо, ми знаходимося в каталозі D: \ NEW і нам треба копірнуть в нього всі дані з каталогу C: \ DATA, в такому випадку досить прописати наступний синтаксис:
Використовуючи командний рядок, що копіюються файли можна склеїти. Для цих цілей досить використовувати знак плюса «+», наприклад:
Ось приклад з двійковими даними:
Взагалі, використовуючи символ плюса «+» і думки типу «а що якщо», можна зробити парочку експериментів. Також варто пам'ятати ряд моментів:
Якщо назва цільового об'єкта збігається з одним з копіюються (крім першого), то початковий вміст цільового об'єкта буде втрачено.
Якщо ім'я цільового об'єкта опущено, то в його якості буде використаний перший об'єкт зі списку :.
Командний рядок REPLACE
Фактично, відмінність даної утиліти в тому, що вона вміє замінювати дані. Синтаксис досить простий і зрозумілий:
REPLACE [діск1:] [путь1] назва_файла [диск2:] [путь2] [/ А] [/ Р] [/ R] [/ W]
REPLACE [діск1:] [путь1] назва_файла [диск2:] [путь2] [/ Р] [/ R] [/ S] [/ W] [/ U]
[Діск1:] [путь1] назва_файла - визначаємо місцезнаходження копіюється, або об'єктів.
[Диск2:] [путь2] - визначаємо місцезнаходження об'єкта-результату. Як видно, імена заміщаються об'єктів задавати не можна.
/ А - додаємо в каталог-результат тільки нові об'єкти з каталогу-результату (без перезапису). Цей ключ не можна використовувати з ключами / S і / U.
/ Р - запитує, чи перед заміною цільового або додаванням вихідного файлу.
/ R - заміщення не тільки звичайних, але і захищених від записи документів.
/ S - дозволяє здійснювати пошук по всіх підкаталогам цільового каталогу і замінювати файли з однаковими іменами. Цей ключ не можна використовувати разом із ключем / А. Пошук в каталогах, заданих параметром путь1, не проводиться.
/ W - очікування вставки диска перед початком виконання
/ U - режим оновлення, тобто будуть замінені тільки ті об'єкти, які мають більш ранню дату модифікації. Несумісність з ключем / A.
Replace D: \ Data \ my_file.txt D: \ Work - в папці Work замінюємо файл my_file.txt на D: \ Data \ my_file.txt
При копіюванні файлів через командний рядок за допомогою утиліти REPLACE, відсутня можливість поновлення прихованих або системних файлів. Для цього треба попередньо змінити їх атрибути.