Вредоносное ПО (malware) - это назойливые или опасные программы,...
В прошлом уроке мы рассмотрели команду COPY, предназначенную для копирования одного или нескольких файлов. Эта команда имеет ряд недостатков. Например, с ее помощью нельзя скопировать системные и скрытые файлы. Команда COPY копирует файлы, но не может копировать каталоги. Для подобных целей была придумана команда XCOPY , которая выполняет те же функции, что и команда COPY, и имеет ряд дополнительных функций.
Команда имеет синтаксис: XCOPY источник [целевой_объект] ] ] [+файл3]...]. Как видите здесь присутствует множество различных параметров и ключей. Попробуем разобрать их.
Команда XCOPY может определять режим копирования для файлов с установленным архивным атрибутом. Посмотреть, установлен или нет архивный атрибут можно в свойствах файла. Если команда XCOPY используется с ключом /A , то копироваться будут файлы с установленным архивным атрибутом. Для примера, создадим на диске «С» папку «papka2» и поместим в нее несколько текстовых файлов. У одного из этих файлов снимем архивный атрибут через свойства файла. Тогда команда xcopy papka2 d:\ /a скопирует только те файлы, у которых архивный атрибут установлен. В моем примере я поместил в папку «papka2» 3 текстовых файла: «file1.txt», «file2.txt», «file3.txt». У файла «file1.txt» я снял архивный атрибут. В результате, этот файл не скопировался на диск «D».
Если у команды XCOPY установлен ключ /M , то копироваться будут файлы с установленным архивным атрибутом, при этом, у исходных файлов архивный атрибут будет сброшен. Например, команда xcopy papka2 d:\ /m скопирует из папки «papka2» все файлы с установленным архивным атрибутом и поместит их на диск «D». Причем у исходных файлов будет сброшен архивный атрибут.
Ключ /D:MM-DD-YY позволяет копировать файлы с указанной или более поздней датой. Например, пусть в папке «papka» находится несколько файлов, причем один из этих файлов имеет последнюю дату изменения 24 апреля 2012, а остальные файлы 22 апреля 2012. Тогда команда xcopy papka d:\ /D:04-23-2012 скопирует только тот файл, который имеет дату изменения 23 апреля 2012 либо более позднюю дату. Обратите внимание на формат записи даты: сначала указывается месяц, потом число, потом год.
Если ключ /D не имеет параметр «дата», то копироваться будут файлы, которые были изменены со времени последнего копирования, либо новые файлы, созданные после последнего копирования. Например, пусть в папке «papka» находится несколько файлов. Скопируем их на диск «D»
Теперь откроем один из исходных файлов (в каталоге «papka» на диске «C») и изменим его (напишем какой-нибудь текст и сохраним). Тогда команда xcopy papka d:\ /d скопирует только этот измененный файл. В моем случае я сделал изменения в файле «file.txt». В результате, только этот файл скопировался, остальные 4 файла не копировались.
Ключ /S команды XCOPY позволяет копировать все непустые подкаталоги из каталога-источника. Для примера, создадим на диске «C» каталог «MyFolder1», в этом каталоге создадим еще 2 каталога: «MyFolder2» и «MyFolder3», в каталоге «MyFolder2» создадим текстовый файл «file1.txt». Все это можно сделать средствами командной строки, зная те команды, которые мы уже изучили. Каталоги создаем с помощью команды MD (MKDIR), а текстовый файл создаем с помощью команды COPY с параметром CON.
Теперь скопируем непустые каталоги из каталога «MyFolder1» на диск «D»: xcopy myfolder1 d:\ /s
В результате, на диск «D» будет скопирована одна папка «MyFolder2» из папки «MyFolder1», а папка «MyFolder3» не будет скопирована, т.к. она пустая.
Ключ /E команды XCOPY применяется в случаях, когда необходимо скопировать все подкаталоги из текущего каталога (в том числе и пустые подкаталоги). Для примера, запишем предыдущую команду, заменив ключ /S на ключ /E
В результате, на диск «D» будут скопированы обе папки «MyFolder2» и «MyFolder3». Обратите внимание, что приведенные выше команды копируют только подкаталоги. Сам текущий каталог («MyFolder1») не копируется.
Ключ /P команды XCOPY выводит запрос с подтверждением при создании нового файла при копировании. Например, создадим на диске «С» файл «f3.txt» и скопируем его на диск «D»: xcopy f3.txt d:\ /p
Ключ /W команды XCOPY перед копированием выводит на экран сообщение «Нажмите любую клавишу, чтобы начать копирование файлов». Перепишем предыдущую команду, заменив ключ /P на ключ /W: xcopy f3.txt d:\ /w
Команда COPY
Источник [+ источник [+ ...]] [результат ]:
источникИмена одного или нескольких копируемых файлов.
/AФайл является текстовым файлом ASCII.
/BФайл является двоичным файлом.
результатКаталог и/или имя для конечных файлов.
/VПроверка правильности копирования файлов.
/N Использование, если возможно, коротких имен при копировании файлов, чьи имена не удовлетворяют стандарту 8.3.
/Y Подавление запроса подтверждения на перезапись существующего конечного файла.
/-Y Обязательный запрос подтверждения на перезапись существующего конечного файла.
Ключ /Y можно установить через переменную среды COPYCMD.
Ключ /-Y командной строки переопределяет такую установку.
По умолчанию требуется подтверждение, если только команда COPY не выполняется в пакетном файле
Команда XCOPY
Чтобы объединить файлы, укажите один конечный и несколько исходных файлов, используя подстановочные знаки или формат "файл1+файл2+файл3+...". Копирование файлов и структур каталогов.
источник [результат] ] ]
[+файл3]...]
источник Копируемые файлы.
результат Местоположение и/или имена новых файлов.
/A Копирование только файлов с установленным архивным атрибутом. Сам атрибут при этом не изменяется.
/M Копирование только файлов с установленным архивным атрибутом. После копирования атрибут снимается.
/D:датаКоп. файлов, измененных не ранее указанной даты. Если дата не указана, заменяются только конечные файлы
/EXCLUDE:файл1[+файл2][+файл3]...Список файлов, содержащих строки. Когда любая из строк Совпадает с любой частью абсолютного пути к копируемому файлу, такой файл исключается из операции копирования. К примеру, указав строку obj или.obj можно исключить все файлы из папки obj или все файлы с расширением obj соответственно.
/P Вывод запросов перед созданием каждого нового файла.
/S Копирование каталогов с подкаталогами (кроме пустых).
/E Копирование каталогов с подкаталогами (в том числе пустых).
Эквивалентен сочетанию ключей /S /E. Совместим с ключом /T. /V
Сравнение конечных файлов с исходными.
/W Вывод запроса на нажатие клавиши перед копированием.
/C Продолжение копирования, независимо от наличия ошибок.
/I Если результат не существует, а копируется несколько файлов, считается, что указано имя каталога.
/Q Запрет вывода имен копируемых файлов.
/F Вывод полных имен исходных и конечных файлов.
/L Вывод имен копируемых файлов.
/H Копирование скрытых и системных файлов (среди прочих).
/R Разрешение замены файлов, предназначенных только для чтения.
/T Создание структуры каталогов (кроме пустых каталогов) без копирования файлов. Если требуется создать пустые каталоги и подкаталоги, используйте сочетание ключей /T /E.
/U Копирование только файлов, уже имеющихся в конечном каталоге.
/K Копирование атрибута "Только чтение" (обычно он сбрасывается).
/N Использование коротких имен при копировании.
/O Копирование сведений о владельце и данных ACL.
/X Копирование параметров аудита файлов (требует /O).
/Y Подавление запроса подтверждения на перезапись существующего конечного файла. /-Y Обязательный запрос подтверждения на перезапись существующего конечного файла.
/Z Копирование сетевых файлов с возобновлением.
Ключ /Y можно установить через переменную среды COPYCMD. Ключ /-Y командной строки переопределяет такую установку.
Пример: 1. Копирование text.txt в A:ЗаданияНовая
2. При копировании имя файла будет изменено
Команда XCOPY используется для копирования файлов и каталогов с сохранением их структуры. По сравнению с командой COPY имеет более широкие возможности и является наиболее гибким средством копирования в командной строке Windows
Формат командной строки:
XCOPY источник [целевой_объект] ] ] [+файл3]...]
Параметры командной строки:
источник - Копируемые файлы.
целевой_объект - Расположение или имена новых файлов.
/A - Копирование только файлов с установленным архивным атрибутом; сам атрибут при этом не изменяется.
/M - Копирование только файлов с установленным архивным атрибутом; после копирования атрибут снимается.
/D:m-d-y - Копирование файлов, измененных не ранее указанной даты. Если дата не указана, заменяются только конечные файлы, более старые, чем исходные.
/EXCLUDE:файл1[+файл2][+файл3]... - Список файлов, содержащих строки с критериями для исключения файлов и папок из процесса копирования. Каждая строка должна располагаться в отдельной строке файла. Если какая-либо из строк совпадает с любой частью абсолютного пути к копируемому файлу, такой файл исключается из операции копирования. Например, указав строку \obj\ или.obj, можно исключить все файлы из папки obj или все файлы с расширением OBJ соответственно.
/P - Вывод запросов перед созданием каждого нового файла.
/S - Копирование только непустых каталогов с подкаталогами.
/E - Копирование каталогов с подкаталогами, включая пустые. Эквивалентен сочетанию ключей /S /E. Совместим с ключом /T.
/V - Проверка размера каждого нового файла.
/W - Вывод запроса на нажатие клавиши перед копированием.
/C - Продолжение копирования вне зависимости от наличия ошибок.
/I - Если целевой объект не существует и копируется несколько файлов, считается, что целевой объект задает каталог.
/Q - Запрет вывода имен копируемых файлов.
/F - Вывод полных имен исходных и целевых файлов.
/L - Вывод имен копируемых файлов.
/G - Копирование зашифрованных файлов в целевой каталог, не поддерживающий шифрование.
/H - Копирование, среди прочих, скрытых и системных файлов.
/R - Перезапись файлов, предназначенных только для чтения.
/T - Создание структуры каталогов без копирования файлов. Пустые каталоги и подкаталоги не включаются в процесс копирования. Для создания пустых каталогов и подкаталогов используйте сочетание ключей /T /E.
/U - Копирование только файлов, уже имеющихся в целевом каталоге.
/K - Копирование атрибутов. При использовании команды XСOPY обычно сбрасываются атрибуты "Только для чтения".
/N - Использование коротких имен при копировании.
/O - Копирование сведений о владельце и данных ACL.
/X - Копирование параметров аудита файлов (подразумевает ключ /O).
/Y - Подавление запроса подтверждения на перезапись существующего целевого файла.
/-Y - Запрос подтверждения на перезапись существующего целевого файла.
/Z - Копирование сетевых файлов с возобновлением.
/J - Копирование с использованием небуферизованного ввода/вывода. Рекомендуется для очень больших файлов.
Ключ /Y можно установить через переменную среды COPYCMD.
Ключ /-Y командной строки переопределяет такую установку.
Примеры использования XCOPY
XCOPY /? - выдать краткую справку по использованию команды.
xcopy C:\users D:\copy1 - скопировать файлы из каталога C:\users в каталог D:\copy1 . Будет выполняться копирование без подкаталогов и только файлов без атрибутов "Скрытый" и "Системный". Для скопированных файлов будет установлен атрибут Архивный . Если каталог, в который выполняется копирование, не существует, то пользователю будет выдано сообщение:
Что означает D:\copy1:
имя файла или каталога
(F = файл, D = каталог)? D
После ответа D целевой каталог будет создан и копирование будет выполняться в D:\COPY1\. Для подавления запроса на создание целевого каталога используется параметр /I:
xcopy C:\users D:\copy1 /I
xcopy C:\users D:\copy1 /H /Y /C - копирование файлов, включая скрытые и системные, с подавлением запроса на перезапись существующих и возобновлением при ошибке. Если существующий в целевом каталоге файл имеет атрибут "Только чтение", то копирование не выполняется. Для перезаписи таких файлов используется ключ /R
xcopy C:\users D:\copy1 /H /Y /C /R /S - скопировать все файлы и подкаталоги (/S) с перезаписью существующих без запроса (/Y) , включая скрытые и системные. (/H) с перезаписью файлов с атрибутом "Только чтение" (/R) и игнорированием ошибок (/C)
xcopy C:\users D:\copy1 /H /Y /C /R /S /EXCLUDE:C:\users\listnotcopy.txt - то же, что и в предыдущем случае, но текстовый файл C:\users\listnotcopy.txt задает признаки исключения из процедуры копирования. Пример содержимого файла:
\User1\
- исключить из копирования каталог C:\users\user1
All Users
исключить из копирования каталог C:\users\All Users
de*.*
- исключить из копирования все файлы и каталоги, начинающиеся на буквосочетание "de"
xcopy C:\users\*.exe D:\copy1 /H /Y /C /R /S /EXCLUDE:C:\users\listnotcopy.txt - то же, что и в предыдущем примере, но выполняется только копирование исполняемых файлов с расширением .exe .
xcopy %TEMP%\*.ini D:\copy1\ini /H /Y /C /R /S /I - копирование всех файлов с расширением .ini из каталога временных файлов в каталог D:\copy1\ini\ . Если целевой подкаталог \ini\ не существует, то он будет создан без запроса пользователю (/I) .
xcopy %TEMP%\*.ini D:\copy1\ini /H /Y /C /R /S /I /D:09-16-2013 - то же, что и в предыдущем примере, но выполняется копирование только тех файлов, у которых установлена дата изменения 16 сентября 2013 года и старше.
xcopy C:\ D:\copy1\LISTDIR /H /Y /C /R /S /I /E /T - создать структуру папок диска C: в каталоге D:\copy1\LISTDIR . Копирование файлов не выполняется. Копируются только папки, включая пустые, скрытые и системные.
xcopy C:\ D:\copy1\LISTDIR /H /Y /C /R /S /I /E /T /D:09-16-2013 воссоздать в каталоге D:\copy1\LISTDIR структуру папок диска C: , с датой изменения 16 сентября 2013 года и позже.
Для добавления новых файлов в каталоги и обновления существующих на более поздние версии, можно использовать команду REPLACE.
Копирует файлы и директории, включая вложенные директории. Работает в командной строке Windows .
Синтаксис команды:
xcopy источник [целевой_объект] ] ] [{/a|/m}] ][+] [{/y|/-y}]Параметры:
источник: обязательный параметр. Определяет расположение и имена файлов которые вам нужно скопировать. Данный параметр должен включать устройство или путь.
целевой_объект: Опеределяет место назначения копируемых файлов. Может включать в себя букву диска с двоеточием, имя директории, имя файла, или комбинацию их.
/w: отображает сообщение "Press any key to begin copying file(s)" и ждет вашего ответа прежде чем начать копирование файлов.
/p: будет выдавать запрос перед созданием каждого файла.
/c: игнорирование ошибок.
/v: проверяет каждый файл после их записи на идентичность исходным. В Windows XP он не используется. Оставлен для совместимости с MS-DOS файлами
/q: тихий режим. Не выводит сообщения во время работы.
/f: отображает имена файлов при копировании.
/l: отобразить имена файлов которые будут копироваться.
/g: Копирование зашифрованных файлов в целевой каталог, не поддерживающий шифрование.
/d[:mm-dd-yyyy] : копировать файлы которые изменены позже указаной даты, включаю указанную. Если не указать значение mm-dd-yyyy (месяц-день-год), xcopy будет копировать файлы которые более новые чем в папке назначения. Вообщем эта команда позволяет обновить файлы, которые изменились.
/u: копировать только те файлы которые уже есть в папке назначения. Т.е. обновить их.
/i: если источник это директория или содержит wildcards (ну типа *) и целевой_объект не указан, то xcopy предполагает что целевой_объект это директория и создает ее. По умолчанию xcopy запрашивает у вас целевой_объект это директория или файл.
/s: директории и поддиректории в которых нет файлов будут пропущены. Если опустить этот параметр, xcopy работает внутри одной директории.
/e: копировать все поддиректории, даже если они пустые. Эквивалентен сочетанию ключей /s /e . Совместим с ключом /t .
/t: Создание структуры каталогов без копирования файлов. Пустые каталоги и подкаталоги не включаются в процесс копирования. Для создания пустых каталогов и подкаталогов используйте сочетание ключей /t /e .
/k: при копировании сохраняется атрибут "только для чтения". По умолчанию он сбрасывается.
/r: перезапись файлов, предназначенных только для чтения.
/h: копировать скрытые и системные файлы. По умолчанию xcopy не копирует эти файлы.
/a: копировать файлы у которых имеется атрибут архива. Сам атрибут при этом сохраняется. Для установки этого атрибута можно использовать команду attrib.
/m: почти тоже что и с ключем /a , только в данном случае атрибут архива будет сбрасываться у исходных файлов.
/n: делает имена файлов и папок короткими. Может понадобиться в случае копирования с FAT на NTFS. Потомучто FAT (8.3 символа) не поддерживает длинные имена как NTFS.
/o: копируется информация о пользователе файла и информация DACL (discretionary access control list).
/x: копирование параметров аудита файлов и информация SACL (подразумевает ключ /o).
/exclude:файл1[+[файл2]][+[файл3]] ... : список файлов, содержащих строки с критериями для исключения файлов и папок из процесса копирования. Каждая строка должна располагаться в отдельной строке файла. Если какая-либо из строк совпадает с любой частью абсолютного пути к копируемому файлу, такой файл исключается из операции копирования. Например, указав строку \obj\ или.obj, можно исключить все файлы из папки obj или все файлы с расширением OBJ соответственно.
/y: чтобы не спрашивал когда нужно перезаписать уже существующий файл.
/-y: противоположность ключу /y .
/z: копировать по сети в возобновляемом режиме.
/? : вывести помощь. Подсказки по параметрам команды.
Примеры использования xcopy
Как скопировать папку в другую папку, сохранив при этом ее разрешения
Когда копируете файлы и папки в проводнике Windows, разрешения этих файлов и папок изменятся. Файлы будут помечены как новые, и наследуют разрешения папки в которую копируем. В качестве создателя файла будет указана ваша учетка.
Примечание: У вас должны быть права на запись в папку которую собираетесь копировать файлы.
Для сохранения первоначальных разрешений файлов, вам нужно воспользоваться следующими параметрами /O, /X, /E, /H и /K, которые означают следующее:
- /E - Копирует все файлы и папки, включая пустые.
- /H - Копирует также скрытые и системные файлы.
- /K - Копирует атрибуты. По умолчанию команда "Xcopy" снимает атрибут "Только чтение".
- /O - Копирует информацию о владельце и ACL.
- /X - Копирует настройки аудита (требуется параметр "/O").
Примечание: Данная процедура не отменяет наследуемые разрешения. Будут применяны следующие наследуемые разрешения:
- Настройки безопасности, примененные непосредственно к файлам и папкам, сохраняются.
- Настройки безопасности, унаследованные от папки назначения, теряются.
- Настройки безопасности папки назначения наследуются.
- При перемещении файлов или папок на диск с файловой системой FAT, данные файлы и папки теряют свои разрешения NTFS, так как разделы FAT не поддерживают разрешения NTFS.
Пример
xcopy c:\oldfolder c:\newfolder /O /X /E /H /K , где "oldfolder" - это папка, содержащая копируемые файлы, а "newfolder" - это папка назначения.
В современных версиях Windows удобнее использовать программу
Полный список команд можно вывести набрав HELP в командной строке.
Команда CD
Текущий каталог можно изменить с помощью команды
CD [диск:][путь\]
Путь к требуемому каталогу указывается с учетом приведенных выше замечаний. Например, команда CD \ выполняет переход в корневой каталог текущего диска. Если запустить команду CD без параметров, то на экран будут выведены имена текущего диска и каталога.
Команда COPY
Одной из наиболее часто повторяющихся задач при работе на компьютере является копирование и перемещение файлов из одного места в другое. Для копирования одного или нескольких файлов используется команда COPY.
Синтаксис этой команды:
COPY источник [+ источник [+ ...]] [результат ]
Краткое описание параметров и ключей команды COPY приведено в таблице.
Таблица 1.1. Параметры и ключи команды COPY |
|
Параметр |
Описание |
источник |
Имя копируемого файла или файлов |
Файл является текстовым файлом ASCII, то есть конец файла обозначается символом с кодом ASCII 26 ( |
|
Файл является двоичным. Этот ключ указывает на то, что интерпретатор команд должен при копировании считывать из источника число байт, заданное размером в каталоге копируемого файла |
|
результат |
Каталог для размещения результата копирования и/или имя создаваемого файла |
Проверка правильности копирования путем сравнения файлов после копирования |
|
Отключение режима запроса подтверждения на замену файлов |
|
Включение режима запроса подтверждения на замену файлов |
Приведем примеры использования команды COPY.
Копирование файла abc.txt из текущего каталога в каталог D:\PROGRAM под тем же именем:
COPY abc.txt D:\PROGRAM
Копирование файла abc.txt из текущего каталога в каталог D:\PROGRAM под новым именем def.txt:
COPY abc.txt D:\PROGRAM\def.txt
Копирование всех файлов с расширением txt с диска A: в каталог "Мои документы" на диске C:
COPY A:\*.txt "C:\Мои документы"
Если не задать в команде целевой файл, то команда COPY создаст копию файла-источника с тем же именем, датой и временем создания, что и исходный файл, и поместит новую копию в текущий каталог на текущем диске. Например, для того, чтобы скопировать все файлы из корневого каталога диска A: в текущий каталог, достаточно выполнить такую краткую команду:
COPY A:\*.*
В качестве источника или результата при копировании можно указывать имена не только файлов, но и устройств компьютера. Например, для того, чтобы распечатать файл abc.txt на принтере, можно воспользоваться командой копирования этого файла на устройство PRN: COPY abc.txt PRN
Другой интересный пример: создадим новый текстовый файл и запишем в него информацию, без использования текстового редактора. Для этого достаточно ввести команду COPY CON my.txt, которая будет копировать то, что вы набираете на клавиатуре, в файл my.txt (если этот файл существовал, то он перезапишется, иначе - создастся). Для завершения ввода необходимо ввести символ конца файла, то есть нажать клавиши
Команда COPY может также объединять (склеивать) нескольких файлов в один. Для этого необходимо указать единственный результирующий файл и несколько исходных. Это достигается путем использования групповых знаков (? и *) или формата файл1 + файл2 + файл3. Например, для объединения файлов 1.txt и 2.txt в файл 3.txt можно задать следующую команду:
COPY 1.txt+2.txt 3.txt
Объединение всех файлов с расширением dat из текущего каталога в один файл all.dat может быть произведено так:
COPY /B *.dat all.dat
Ключ /B здесь используется для предотвращения усечения соединяемых файлов, так как при комбинировании файлов команда COPY по умолчанию считает файлами текстовыми.
Если имя целевого файла совпадает с именем одного из копируемых файлов (кроме первого), то исходное содержимое целевого файла теряется. Если имя целевого файла опущено, то в его качестве используется первый файл из списка. Например, команда COPY 1.txt+2.txt добавит к содержимому файла 1.txt содержимое файла 2.txt. Командой COPY можно воспользоваться и для присвоения какому-либо файлу текущей даты и времени без модификации его содержимого. Для этого нужно ввести команду типа
COPY /B 1.txt +,
Здесь запятые указывают на пропуск параметра приемника, что и приводит к требуемому результату.
Команда COPY имеет и свои недостатки. Например, с ее помощью нельзя копировать скрытые и системные файлы, файлы нулевой длины, файлы из подкаталогов. Кроме того, если при копировании группы файлов COPY встретит файл, который в данный момент нельзя скопировать (например, он занят другим приложением), то процесс копирования полностью прервется, и остальные файлы не будут скопированы.
Команда XCOPY
Указанные при описании команды COPY проблемы можно решить с помощью команды XCOPY, которая предоставляет намного больше возможностей при копировании. Необходимо отметить, правда, что XCOPY может работать только с файлами и каталогами, но не с устройствами.
Синтаксис этой команды:
XCOPY источник [результат] [ключи]
Команда XCOPY имеет множество ключей, мы коснемся лишь некоторых из них. Ключ /D[:[дата]] позволяет копировать только файлы, измененные не ранее указанной даты. Если параметр дата не указан, то копирование будет производиться только если источник новее результата. Например, команда
XCOPY "C:\Мои документы\*.*" "D:\BACKUP\Мои документы" /D
скопирует в каталог "D:\BACKUP\Мои документы" только те файлы из каталога "C:\Мои документы", которые были изменены со времени последнего подобного копирования или которых вообще не было в "D:\BACKUP\Мои документы".
Ключ /S позволяет копировать все непустые подкаталоги в каталоге-источнике. С помощью же ключа /E можно копировать вообще все подкаталоги, включая и пустые.
Если указан ключ /C, то копирование будет продолжаться даже в случае возникновения ошибок. Это бывает очень полезным при операциях копирования, производимых над группами файлов, например, при резервном копировании данных.
Ключ /I важен для случая, когда копируются несколько файлов, а файл назначения отсутствует. При задании этого ключа команда XCOPY считает, что файл назначения должен быть каталогом. Например, если задать ключ /I в команде копирования всех файлов с расширением txt из текущего каталога в несуществующий еще подкаталог TEXT,
XCOPY *.txt TEXT /I
то подкаталог TEXT будет создан без дополнительных запросов.
Ключи /Q, /F и /L отвечают за режим отображения при копировании. При задании ключа /Q имена файлов при копировании не отображаются, ключа /F - отображаются полные пути источника и результата. Ключ /L обозначает, что отображаются только файлы, которые должны быть скопированы (при этом само копирование не производится).
С помощью ключа /H можно копировать скрытые и системные файлы, а с помощью ключа /R - заменять файлы с атрибутом "Только для чтения". Например, для копирования всех файлов из корневого каталога диска C: (включая системные и скрытые) в каталог SYS на диске D:, нужно ввести следующую команду:
XCOPY C:\*.* D:\SYS /H
Ключ /T позволяет применять XCOPY для копирования только структуры каталогов источника, без дублирования находящихся в этих каталогах файлов, причем пустые каталоги и подкаталоги не включаются. Для того, чтобы все же включить пустые каталоги и подкаталоги, нужно использовать комбинацию ключей /T /E.
Используя XCOPY можно при копировании обновлять только уже существующие файлы (новые файлы при этом не записываются). Для этого применяется ключ /U. Например, если в каталоге C:\2 находились файлы a.txt и b.txt, а в каталоге C:\1 - файлы a.txt, b.txt, c.txt и d.txt, то после выполнения команды
XCOPY C:\1 C:\2 /U
в каталоге C:\2 по-прежнему останутся лишь два файла a.txt и b.txt, содержимое которых будет заменено содержимым соответствующих файлов из каталога C:\1.Если с помощью XCOPY копировался файл с атрибутом "Только для чтения", то по умолчанию у файла-копии этот атрибут снимется. Для того, чтобы копировать не только данные, но и полностью атрибуты файла, необходимо использовать ключ /K.
Ключи /Y и /-Y определяют, нужно ли запрашивать подтверждение перед заменой файлов при копировании. /Y означает, что такой запрос нужен, /-Y - не нужен.
Команда DIR
Еще одной очень полезной командой является DIR [диск:][путь][имя_файла] [ключи], которая используется для вывода информации о содержимом дисков и каталогов. Параметр [диск:][путь] задает диск и каталог, содержимое которого нужно вывести на экран. Параметр [имя_файла] задает файл или группу файлов, которые нужно включить в список. Например, команда
DIR C:\*.bat
выведет на экран все файлы с расширением bat в корневом каталоге диска C:. Если задать эту команду без параметров, то выводится метка диска и его серийный номер, имена (в коротком и длинном вариантах) файлов и подкаталогов, находящихся в текущем каталоге, а также дата и время их последней модификации. После этого выводится число файлов в каталоге, общий объем (в байтах), занимаемый файлами, и объем свободного пространства на диске. Например:
Том в устройстве C имеет метку PHYS1_PART2 Серийный номер тома: 366D-6107 Содержимое папки C:\aditor . <ПАПКА> 25.01.00 17:15 . .. <ПАПКА> 25.01.00 17:15 .. TEMPLT02 DAT 227 07.08.98 1:00 templt02.dat UNINST1 000 1 093 02.03.99 8:36 UNINST1.000 HILITE DAT 1 082 18.09.98 18:55 hilite.dat TEMPLT01 DAT 48 07.08.98 1:00 templt01.dat UNINST0 000 40 960 15.04.98 2:08 UNINST0.000 TTABLE DAT 357 07.08.98 1:00 ttable.dat ADITOR EXE 461 312 01.12.99 23:13 aditor.exe README TXT 3 974 25.01.00 17:26 readme.txt ADITOR HLP 24 594 08.10.98 23:12 aditor.hlp ТЕКСТО~1 TXT 0 11.03.01 9:02 Текстовый файл.txt 11 файлов 533 647 байт 2 папок 143 261 696 байт свободно
С помощью ключей команды DIR можно задать различные режимы расположения, фильтрации и сортировки. Например, при использовании ключа /W перечень файлов выводится в широком формате с максимально возможным числом имен файлов или каталогов на каждой строке. Например:
Том в устройстве C имеет метку PHYS1_PART2 Серийный номер тома: 366D-6107 Содержимое папки C:\aditor [.] [..] TEMPLT02.DAT UNINST1.000 HILITE.DAT TEMPLT01.DAT UNINST0.000 TTABLE.DAT ADITOR.EXE README.TXT ADITOR.HLP ТЕКСТО~1.TXT 11 файлов 533 647 байт 2 папок 143 257 600 байт свободно
С помощью ключа /A[[:]атрибуты] можно вывести имена только тех каталогов и файлов, которые имеют заданные атрибуты (R - "Только чтение", A - "Архивный", S - "Системный", H - "Скрытый", префикс "–" имеет значение НЕ). Если ключ /A используется более чем с одним значением атрибута, будут выведены имена только тех файлов, у которых все атрибуты совпадают с заданными. Например, для вывода имен всех файлов в корневом каталоге диска C:, которые одновременно являются скрытыми и системными, можно задать команду
DIR C:\ /A:HS
а для вывода всех файлов, кроме скрытых - команду
DIR C:\ /A:-H
Отметим здесь, что атрибуту каталога соответствует буква D, то есть для того, чтобы, например, вывести список всех каталогов диска C:, нужно задать команду
DIR C: /A:D
Ключ /O[[:]сортировка] задает порядок сортировки содержимого каталога при выводе его командой DIR. Если этот ключ опущен, DIR печатает имена файлов и каталогов в том порядке, в котором они содержатся в каталоге. Если ключ /O задан, а параметр сортировка не указан, то DIR выводит имена в алфавитном порядке. В параметре сортировка можно использовать следующие значения: N - по имени (алфавитная), S - по размеру (начиная с меньших), E - по расширению (алфавитная), D - по дате (начиная с более старых), A - по дате загрузки (начиная с более старых), G - начать список с каталогов. Префикс "–" означает обратный порядок. Если задается более одного значения порядка сортировки, файлы сортируются по первому критерию, затем по второму и т.д.
Ключ /S означает вывод списка файлов из заданного каталога и его подкаталогов.
Ключ /B перечисляет только названия каталогов и имена файлов (в длинном формате) по одному на строку, включая расширение. При этом выводится только основная информация, без итоговой. Например:
Templt02.dat UNINST1.000 hilite.dat templt01.dat UNINST0.000 ttable.dat aditor.exe readme.txt aditor.hlp Текстовый файл.txt
Команды MKDIR и RMDIR
Для создания нового каталога и удаления уже существующего пустого каталога используются команды MKDIR [диск:]путь и RMDIR [диск:]путь [ключи] соответственно (или их короткие аналоги MD и RD). Например:
MKDIR "C:\Примеры" RMDIR "C:\Примеры"
Команда MKDIR не может быть выполнена, если каталог или файл с заданным именем уже существует. Команда RMDIR не будет выполнена, если удаляемый каталог не пустой.
Команда DEL
Удалить один или несколько файлов можно с помощью команды
DEL [диск:][путь]имя_файла [ключи]
Для удаления сразу нескольких файлов используются групповые знаки? и *. Ключ /S позволяет удалить указанные файлы из всех подкаталогов, ключ /F – принудительно удалить файлы, доступные только для чтения, ключ /A[[:]атрибуты] – отбирать файлы для удаления по атрибутам (аналогично ключу /A[[:]атрибуты] в команде DIR).
Команда REN
Переименовать файлы и каталоги можно с помощью команды RENAME (REN). Синтаксис этой команды имеет следующий вид:
REN [диск:][путь][каталог1|файл1] [каталог2|файл2]
Здесь параметр каталог1|файл1 определяет название каталога/файла, которое нужно изменить, а каталог2|файл2 задает новое название каталога/файла. В любом параметре команды REN можно использовать групповые символы? и *. При этом представленные шаблонами символы в параметре файл2 будут идентичны соответствующим символам в параметре файл1. Например, чтобы изменить у всех файлов с расширением txt в текущей директории расширение на doc, нужно ввести такую команду:
REN *.txt *.doc
Если файл с именем файл2 уже существует, то команда REN прекратит выполнение, и произойдет вывод сообщения, что файл уже существует или занят. Кроме того, в команде REN нельзя указать другой диск или каталог для создания результирующих каталога и файла. Для этой цели нужно использовать команду MOVE, предназначенную для переименования и перемещения файлов и каталогов.
Команда MOVE
Синтаксис команды для перемещения одного или более файлов имеет вид:
MOVE [диск:][путь]имя_файла1[,...] результирующий_файл
Синтаксис команды для переименования папки имеет вид:
MOVE [диск:][путь]каталог1 каталог2
Здесь параметр результирующий_файл задает новое размещение файла и может включать имя диска, двоеточие, имя каталога, либо их сочетание. Если перемещается только один файл, допускается указать его новое имя. Это позволяет сразу переместить и переименовать файл. Например,
MOVE "C:\Мои документы\список.txt" D:\list.txt
Если указан ключ /-Y, то при создании каталогов и замене файлов будет выдаваться запрос на подтверждение. Ключ /Y отменяет выдачу такого запроса.