Команды манипулирования файлами. Команды для командной строки Windows

Побайтное сравнение двух или нескольких файлов. Команда comp позволяет сравнивать файлы, находящиеся на разных дисках и в разных каталогах. При сравнении файлов с помощью команды comp выводятся их имена и расположения. Выполненная без параметров команда comp запрашивает файлы для сравнения.

Синтаксис

comp [файл1 ] [файл2 ] [/d ] [ /a ] [/l ] [/n= кол_строк ] [/c ]

Параметры

файл1 Задание имени и расположения первого файла или набора файлов для сравнения. Для указания нескольких файлов можно использовать подстановочные знаки (* и?). файл2 Задание имени и расположения второго файла или набора файлов для сравнения. Для задания нескольких файлов можно использовать подстановочные знаки (* и?). /d Вывод различий в десятичном формате. (По умолчанию используется шестнадцатеричный формат.) /a Вывод различий в символьном виде. /l Вывод номера строки, в которой обнаружено различие, вместо отображения смещения в байтах. /n= кол_строк Сравнение первых нескольких строк, заданных параметром кол_строк , обоих файлов, даже если эти файлы имеют разный размер. /c Сравнение без учета регистра. /? Отображение справки в командной строке.

Примечания

  • Сравнение файлов с одинаковыми именами

    Если сравниваются файлы с одинаковыми именами, они должны находятся в разных каталогах или на разных дисках. Если в параметре файл2 не указано имя файла, предполагается, что имя файл2 совпадает с именем файл1 . Для задания имен файлов можно использовать подстановочные знаки (* и?).

  • Неполное задание параметров файл1 и файл2

    Если имена файлов файл1 или файл2 введены не полностью или параметр файл2 пропущен, программа comp выведет на экран запрос для получения недостающих сведений. Если параметр файл1 содержит только имя диска или каталога без имени файла, команда comp сравнивает все файлы в заданном каталоге с файлом файл2 . Если параметр файл2 содержит только имя диска или каталога, будет предполагаться, что имя файла файл2 такое же, как в параметре файл1 .

  • Вывод информации о несовпадениях

    В процессе сравнения программа comp выводит сообщения с указанием расположения несовпадающих байтов в файлах. В каждое сообщение включены сведения о смещении адреса несовпадающих байтов и содержимое этих байт (в шестнадцатеричном формате, если не указан параметр /a или /d ). Эти сообщения имеют следующий формат:

    Ошибка сравнения OFFSET xxxxxxxx

    После того как найдено 10 различий, работа команды comp прекращается и выводится следующее сообщение:

    Обнаружено 10 различий. Сравнение завершено.

  • Сравнение файлов разного размера

    Чтобы сравнить файлы разных размеров, необходимо указать параметр /n . Если файлы имеют различные размеры, comp выводит следующее сообщение:

    Разные размеры файлов

    Нажмите клавишу Y для сравнения следующей пары файлов. Нажмите клавишу N для завершения выполнения команды comp .

    При нажатии клавиши Y команда comp продолжает сравнение с заданными параметрами, пока не будет нажата клавиша N или заново введена эта команда.

    При работе с файлами разного размера воспользуйтесь параметром /n , чтобы сравнить только начала файлов.

  • Последовательное сравнение файлов

    Если использованы подстановочные знаки (* и?) для задания нескольких файлов, comp найдет первый файл, удовлетворяющий шаблону файл1 , и выполнит его сравнение с соответствующим файлом файл2 , если он существует. Команда comp выводит результаты сравнения и проводит сравнение всех файлов, удовлетворяющих шаблону файл1 . После завершения работы comp будет выведено следующее сообщение:

    Сравнить другие файлы ?

    Чтобы сравнить другие файлы, нажмите клавишу Y . Команда comp запросит расположения и имена новых файлов. Чтобы завершить сравнение, нажмите клавишу N . При нажатии клавиши Y команда comp запрашивает параметры командной строки. Если эти параметры не заданы, программа comp использует параметры, введенные ранее.

  • Если файлы не найдены

    Если командой comp не найдены указанные файлы, выводится запрос на продолжение сравнения.

Примеры

Чтобы сравнить содержимое каталога C:\Reports с содержимым каталога резервных копий \\Sales\Backup\April, введите следующую команду:

comp c:\reports \\sales\backup\april

Чтобы сравнить первые десять строк файлов в каталоге \Invoice и вывести результат в десятичном формате, введите следующую команду:

comp \invoice\*.txt \invoice\backup\*.txt /n=10 /d

Используя команды CMD Windows можно запускать системные утилиты намного быстрее, чем делать это обычным способом. И, хотя далеко не все понимают смысла в этом текстовом интерфейсе, считая его устаревшим, на самом деле инструмент довольно полезный.

Причём не только для профессионалов, но и для обычных пользователей. Хотя для выполнения большинства команд запускать командную строку (cmd) следует от имени администратора.

Необходимость использования командной строки

Строка cmd, представляющая собой стандартный инструмент платформы Windows, ничем не отличается в разных версиях операционных систем – и в седьмой, и в восьмой, и в десятой, и даже в XP. И все команды одинаково работают в каждой из них.

Преимуществом использования строки является ускорение работы – иногда ввести нужную команду гораздо быстрее, чем искать в системных папках соответствующий файл. Тем более что для ускорения работы с CMD ссылку на неё можно вывести на рабочий стол – или даже на панель быстрого запуска.

Недостатками интерфейса можно назвать:

  • ручной ввод команды с клавиатуры;
  • необходимость запуска CMD от имени администратора (по-другому большинство команд не запускается);
  • достаточно большой список команд, которые трудно запомнить.

Внешне командная строка во многом напоминает интерфейс системы DOS. И, хотя она позволяет решать намного больше задач, некоторые команды совпадают с устаревшей платформой. Например, «format», «cd» и «dir», необходимые для работы с папками и дисками.

Работа с интерфейсом

Перед тем как начать работать с командной строкой, её следует сначала запустить. Для этого можно воспользоваться несколькими способами:

  1. Открыть меню «Выполнить» (нажав одновременно Win + R) и ввести команду cmd.exe;
  2. Перейти в папку Windows на системном диске, открыть каталог System32 и запустить файл под названием cmd.exe. Упростить задачу можно, создав ярлык, запускающий это же приложение, и установить его на рабочем столе;
  3. Открыть меню «Пуск», перейти к разделу «Все программы», затем к подразделу «Стандартные» и найти командную строку.

Следует знать: После первого запуска через меню «Пуск» CMD появляется в верхней его части– в списке чаще всего запускаемых приложений и утилит. И открывать строку можно, работая в любом приложении (даже в игре), всего лишь нажав на клавиатуре кнопку Win.

Рис. 1. Командная строка операционной системы Windows.

Стандартный вид командной строки представляет собой чёрное окно с белым текстом. Если этот вариант не устраивает пользователя, он может изменить цвета в зависимости от своих предпочтений.

Для этого следует кликнуть правой кнопкой мыши по верхней части окна и перейти к свойствам CMD. В открывающемся окне можно выбрать и расположение строки, и цвета текста или окна, и даже размеры шрифта. Здесь же есть возможность расширить интерфейс практически на весь экран, повысив уровень удобства работы с ним.

Рис. 2. Изменение настроек командной строки

Команды, помогающие работать с CMD

Ещё больше упростить использование командной строки помогают горячие клавиши – хотя они и не совпадают с привычными комбинациями Windows. Вместо нажатия стандартных наборов Ctrl + C и Ctrl + V, копирование и вставка текста выполняются следующим образом:

  1. Кликнуть по выбранной строке в открытом окне CMD правой кнопкой мыши;
  2. Выбрать пункт «Пометить»;
  3. Выделить текст с помощью левой кнопки;
  4. Ещё раз кликнуть правой кнопкой. После этого вся информация оказывается в буфере обмена операционной системы.

Для того чтобы вставить скопированную информацию нажимают ту же правую кнопку и выбирают пункт «Вставить». Упростить копирование данных можно, поставив галочку на пункте «Выделение мышью» в свойствах командной строки.

После этого текст можно сразу выделять левой кнопкой. Если же снять галочку на пункте быстрой вставки, данные вставляются поверх уже написанных команд.

Список горячих клавиш

При работе с командной строкой пользуются следующими «горячими клавишами»:

  • стрелки вверх и вниз позволяют перемещать курсор по окну, включая уже введённые команды;
  • Home и End перемещают курсор, соответственно, в начало и конец строки;
  • стрелки влево и вправо вместе с нажатой одновременно клавишей Ctrl позволяют переместить курсор в заданную сторону на целое слово;
  • Insert, так же как и в любом текстовом редакторе, переключает режимы вставки текста со сдвигом вправо и перезаписи поверх написанных данных;
  • Esc удаляет выделенную информацию;
  • F1 обеспечивает ввод последней записанной команды по одному символу;
  • F5 выводит предыдущую команду;
  • F7 выводит список нескольких последних записей. По умолчанию их количество равно 50.

Основные команды

Список основных команд, которые нужны большинству пользователей, сравнительно небольшой и состоит из команд, выполняющих следующие действия:

  • работают с каталогами;
  • выдают статистику работы различных приложений, сети и операционной системы в целом;
  • восстанавливают работу драйверов;
  • выключают компьютер.

С помощью командной строки можно даже отформатировать диск (включая системный, который не форматируется из системы Windows любыми другими способами) и даже остановить процесс. А ещё, используя CMD, пользователь намного быстрее получает доступ к редактору реестра и окну изменения конфигурации системы.

Работа с каталогами

Основной командой для работы с каталогами является dir. С её помощью можно проверить содержимое открытой директории. А, если открыть требуется другую папку, следует дополнительно указать к ней путь. Например, выбрать «dir C:\» или «dir D:\».

Рис. 3. Проверка содержимого логического диска C.

Вторая команда для работы с каталогами – cd. С её помощью можно перейти в любую выбранную папку. Например, написав в командной строке «cd C:\Windows», переходят к системной директории. Для открытия папки на диске, который уже выбран, отдают команду типа «cd /D D:\».

Рис. 4. Переход с локального диска C на диск D.

Команда mkdir обеспечивает создание новой папки. А параметр, который после неё задаётся, определяет имя каталога. Так, после введения «mkdir D:\New_Folder», на диске D появляется соответствующая директория. Если же пользователь указывает в списке сразу несколько каталогов (например, «E:\New\Games\Fallout_3»), можно создать целое дерево папок.

Рис. 5. Создание новой папки из командной строки.

Выполнение команды rmdir позволяет удалить каталог, указав к нему полный путь. Например, написав «rmdir D:\New_Folder», можно стереть недавно созданную папку. Хотя, если внутри каталога есть другие файлы, на экране появляется сообщение о том, что он не пустой. Удалить непустую папку можно путём введения в строке команды rmdir /S. Перед удалением следует выбрать пункт «Y» (Yes), подтвердив своё действие.

Рис. 6. Удаление папки с помощью команды rmdir.

Выключение компьютера

С помощью команды shutdown можно выключить компьютер – причём, или сразу, или, установив таймер:

  • shutdown /s просто прекращает работу операционной системы, закрывая все незавершённые процессы;
  • при выборе команды shutdown /s /t 3600 таймер будет установлен ровно на час. Если требуется установить любое другое время, вместо 3600 пишется соответствующее количество секунд;

Рис. 7. Включение автоматического прекращения работы системы.

  • для отмены уже установленного таймера вводится команда shutdown /a.

Рис. 8. Отмена завершения работы.

Команды работают одинаково в любой операционной системе. Разница заключается только в появляющихся надписях. Так, например, для Windows 7 сообщения располагаются в правом нижнем углу рабочего стола.

Просмотр статистки

Просмотр статистики работы компьютера начинается с команды systeminfo. Она выдаёт максимальное количество информации о системе Windows. Хотя для получения сведений эффективнее использовать не системную утилиту, а специальные приложения.

Например, AIDA64 – универсальную программу для сбора сведений, единственным недостатком которой является условно-бесплатная лицензия. Через месяц после использования за утилиту придётся заплатить – от 1400 до 2200 руб. за компьютер, в зависимости от количества покупаемых лицензий.

Рис. 9. Получение информации о компьютере и операционной системе.

Утилита driverquery позволяет ознакомиться со списком драйверов и их свойствами. В появляющемся на экране списке можно увидеть тип управляющей программы, дату ссылки и название модуля.

Рис. 10. Вывод на экран списка драйверов.

Утилита под названием pathping после запуска показывает сведения о данных, потерянных при передаче между начальным и конечным пунктом. С помощью этой команды вычисляются коэффициенты потери для различных маршрутизаторов. А по результатам работы утилиты определяют проблемы с доступом для отдельных роутеров.

Рис. 11. Утилита, проверяющая работу сети.

Приложение Netstat показывает информацию об активных подключениях и статистику для различных сетевых протоколов. При запуске команды без указания конкретных параметров на экран выводятся только подключения TCP.

Рис. 12. Проверка активных подключений TCP.

Команда tasklist выводит на экран список всех процессов, запущенных системой. С её помощью можно ознакомиться с данными, полученными от удалённого компьютера. Хотя, если дополнительные параметры не указаны, информация выдаётся только о текущем устройстве.

Утилита ipconfig выводит сведения об IP-адресе и других параметрах сетевого адаптера. Вместе с командой применяются дополнительные параметры – например, /all, который позволяет получить сведения о каждом из адаптеров.

Рис. 13. Получение информации о сетевых подключениях.

Изменение параметров системы

Утилита msconfig позволяет вызвать меню, с помощью которого изменяется конфигурация оперативной системы:

  • список программ, автоматически загружающихся вместе с системой;
  • варианты запуска;
  • параметры загрузки Windows.

Чаще всего команду используют для того чтобы удалить или добавить приложение на вкладке автозагрузки. А иногда вносят изменения в порядок загрузки операционных систем – если на компьютере их установлены две (например, Windows 10 и Windows XP, каждая из которых может быть более удобной для конкретного пользователя).

Рис. 14. Вызов меню изменения конфигурации системы.

Запуск утилиты regedit позволяет открыть редактор системного реестра – одно из самых полезных приложений, с помощью которого избавляются от остатков удалённых программ, вносят изменения в работу служб и исправляют неполадки. Стоит отметить, что изменять любые значения (не говоря уже об удалении) требуется очень осторожно. Ошибки в реестре могут привести к сбоям системы и даже к её переустановке.Читайте также наш материал: ТОП-3 программ для чистки реестра Windows 7.

Рис. 16. Запуск проверки файлов на системном диске.

Команда format, не изменяющаяся уже десятки лет, позволяет отформатировать любой диск, включая USB-флешки. При выборе «format C:» форматируется системный раздел. А с помощью дополнительных параметров можно определить файловую систему (/fs), установить метку тома (/y) и даже назначить размеры кластера (/a). Не задавая определённые условия, кластер устанавливается автоматически.

Рис. 17. Форматирование диска H через командную строку.

Остановка процессов

С помощью команды можно остановить конкретный процесс. Для этого может использоваться идентификатор (например, 2616, если речь идёт о графическом редакторе Paint) и параметр /pid. Кроме того, при остановке может применяться название самого процесса и другой параметр /im. Этот же редактор закрывается командой taskkill /im MSPaint.exe.

Рис. 19. Утилита, восстанавливающая поврежденные системные файлы.

Очищение экрана

После выполнения нескольких команд окно заполняется текстом, который может оказаться помехой для дальнейшей работы. Избавиться от лишних данных можно с помощью команды CLS (Clear Screen). После её запуска экран полностью очищается, оставляя место для дальнейших действий пользователя.

Выводы

При постоянном применении основных команд они легко запоминаются пользователем. А для того чтобы узнать о новых утилитах или вспомнить названия старых требуется ввести в командной строке /help. На экране появится список возможных команд, которые вряд ли будут полезны для обычного пользователя, но могут упростить работу администраторам локальных сетей.

Побайтное сравнение двух или нескольких файлов. Команда comp позволяет сравнивать файлы, находящиеся на разных дисках и в разных каталогах. При сравнении файлов с помощью команды comp выводятся их имена и расположения. Выполненная без параметров команда comp запрашивает файлы для сравнения.

Синтаксис

comp [файл1 ] [файл2 ] [/d ] [ /a ] [/l ] [/n= кол_строк ] [/c ]

Параметры

файл1 Задание имени и расположения первого файла или набора файлов для сравнения. Для указания нескольких файлов можно использовать подстановочные знаки (* и?). файл2 Задание имени и расположения второго файла или набора файлов для сравнения. Для задания нескольких файлов можно использовать подстановочные знаки (* и?). /d Вывод различий в десятичном формате. (По умолчанию используется шестнадцатеричный формат.) /a Вывод различий в символьном виде. /l Вывод номера строки, в которой обнаружено различие, вместо отображения смещения в байтах. /n= кол_строк Сравнение первых нескольких строк, заданных параметром кол_строк , обоих файлов, даже если эти файлы имеют разный размер. /c Сравнение без учета регистра. /? Отображение справки в командной строке.

Примечания

  • Сравнение файлов с одинаковыми именами

    Если сравниваются файлы с одинаковыми именами, они должны находятся в разных каталогах или на разных дисках. Если в параметре файл2 не указано имя файла, предполагается, что имя файл2 совпадает с именем файл1 . Для задания имен файлов можно использовать подстановочные знаки (* и?).

  • Неполное задание параметров файл1 и файл2

    Если имена файлов файл1 или файл2 введены не полностью или параметр файл2 пропущен, программа comp выведет на экран запрос для получения недостающих сведений. Если параметр файл1 содержит только имя диска или каталога без имени файла, команда comp сравнивает все файлы в заданном каталоге с файлом файл2 . Если параметр файл2 содержит только имя диска или каталога, будет предполагаться, что имя файла файл2 такое же, как в параметре файл1 .

  • Вывод информации о несовпадениях

    В процессе сравнения программа comp выводит сообщения с указанием расположения несовпадающих байтов в файлах. В каждое сообщение включены сведения о смещении адреса несовпадающих байтов и содержимое этих байт (в шестнадцатеричном формате, если не указан параметр /a или /d ). Эти сообщения имеют следующий формат:

    Ошибка сравнения OFFSET xxxxxxxx

    После того как найдено 10 различий, работа команды comp прекращается и выводится следующее сообщение:

    Обнаружено 10 различий. Сравнение завершено.

  • Сравнение файлов разного размера

    Чтобы сравнить файлы разных размеров, необходимо указать параметр /n . Если файлы имеют различные размеры, comp выводит следующее сообщение:

    Разные размеры файлов

    Нажмите клавишу Y для сравнения следующей пары файлов. Нажмите клавишу N для завершения выполнения команды comp .

    При нажатии клавиши Y команда comp продолжает сравнение с заданными параметрами, пока не будет нажата клавиша N или заново введена эта команда.

    При работе с файлами разного размера воспользуйтесь параметром /n , чтобы сравнить только начала файлов.

  • Последовательное сравнение файлов

    Если использованы подстановочные знаки (* и?) для задания нескольких файлов, comp найдет первый файл, удовлетворяющий шаблону файл1 , и выполнит его сравнение с соответствующим файлом файл2 , если он существует. Команда comp выводит результаты сравнения и проводит сравнение всех файлов, удовлетворяющих шаблону файл1 . После завершения работы comp будет выведено следующее сообщение:

    Сравнить другие файлы ?

    Чтобы сравнить другие файлы, нажмите клавишу Y . Команда comp запросит расположения и имена новых файлов. Чтобы завершить сравнение, нажмите клавишу N . При нажатии клавиши Y команда comp запрашивает параметры командной строки. Если эти параметры не заданы, программа comp использует параметры, введенные ранее.

  • Если файлы не найдены

    Если командой comp не найдены указанные файлы, выводится запрос на продолжение сравнения.

Примеры

Чтобы сравнить содержимое каталога C:\Reports с содержимым каталога резервных копий \\Sales\Backup\April, введите следующую команду:

comp c:\reports \\sales\backup\april

Чтобы сравнить первые десять строк файлов в каталоге \Invoice и вывести результат в десятичном формате, введите следующую команду:

comp \invoice\*.txt \invoice\backup\*.txt /n=10 /d

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

5.6.3. Команды манипулирования файлами

Команда ERASE (DEL)

Назначение: удаление файлов.

Тип: внутренняя.

Синтаксис:

ERASE {pattern | dir )

DEL {pattern \ dir }

Комментарии. Если в командной строке задан pattern, то удаляются все сопоставимые с образцом файлы. В случае указания dir удаляются все содержащиеся в каталоге файлы, но не подкаталоги и не содержимое последних. Следовательно, dir здесь считается сокращением (си­нонимом) dir \*.*.

При указании на удаление всех файлов в каталоге (независимо от способа) на экране появится сообщение

All files in directory will be deleted!

Are you sure (Y/N)?

(Все файлы в каталоге будут удалены!

Вы уверены (Y-да/N-нет)?)

При утвердительном ответе (Y) выполнение команды продолжается, а при отрицательном (N) - отменяется.

Замечания:

DOS не содержит средств восстановления удаленных файлов. Поэтому команду DEL следует использовать аккуратно. В частности, если в качестве ее аргумента предполагается задать дей­ствительно образец, а не файл, то целесообразно предварительно выдать команду DIR с тем же аргументом, чтобы просмотреть список файлов, которые будут удалены. Это позволит предотв­ратить попутное удаление файлов, которые должны быть сохранены;

Для удаления всех файлов в текущем каталоге диска в приводе d необходимо в качестве аргумента команды задать d:. (просто d: здесь не проходит);

Файлы с атрибутами R, Н и/или S командой ERASE не удаляются;

Технически при удалении файла изменяются только первый символ его имени в соответствующем элементе каталога и связанные с файлом элементы FAT, что обеспечивает возможность выделения элемента каталога и дискового пространства, прежде задействованных файлом, для размещения других файлов. Информация же, содержащаяся в файле, физически не стирается. Поэтому если файл занимал непрерывную область дискового пространства и после его удаления задействованная им ранее дисковая память еще не была выделена другому файлу, то имеется принципиальная возможность восстановления удаленного файла, которая и реализуется многими утилитами.

Примеры:

■ DEL A:*.PAS - удалить все файлы с расширением PAS из текущего каталога диска в приводе А;

■ DEL . - удалить все файлы (но не каталоги) в рабочем каталоге.

DOS 4.0. Для повышения безопасности команды ERASE можно использовать переключатель /Р. При этом перед удалением каждого файла из заданного множества на экране дисплея появляется сообщение

file, Delete (Y/N)?

(Удалить file (Y- да/N- нет)?)

При ответе Y указанный файл будет удален; иначе же он останется в целости и сохранности. Выполнение команды продолжается при любом ответе, если еще есть необработанные файлы.

Команда RENAME (REN)

Назначение: переименование файлов.

Тип: внутренняя.

Синтаксис:

RENAME pattern сотрпате

REN pattern сотрпате

Комментарии. Множество переименовываемых файлов выделяется по образцу в pattern . Затем каждый файл из этого множества переименовывается таким образом, чтобы его новое составное имя было сопоставимо с образцом с o mpname и одновременно являлось наиболее близким к старому имени. Другими словами, вместо символов-заменителей в с o mpname подставляются соответствующие фрагменты старого имени файла. При этом если символ-заменитель? находится на i-й позиции поля имени (расширения) в с o mpname , то вместо него подставляется i-й символ имени (расширения) переименовываемого файла. Когда поле имени (расширения) переимено­вываемого файла содержит менее i символов, символ-заменитель? ничем не заменяется. Только что сказанное справедливо для всех команд манипулирования файлами.

Замечания:

Команда RENAME не изменяет размещения файлов, поэтому любая спецификация dir во втором аргументе игнорируется;

Присваиваемое файлу новое имя не должно совпадать с именем уже существующего в том же каталоге файла, иначе команда не выполняется;

Файлы с атрибутами Н и/или S переименовать не удастся. Остальные атрибуты командой RENAME сохраняются в неизменном виде;

Командой RENAME невозможно переименовать каталог;

Символ-заменитель * удобно использовать во втором аргументе команды не только для задания множества составных имен файлов, но и для упрощения указания единственного со­ставного имени (см. примеры).

Примеры:

■ REN \*.ТХТ *.DOC - изменить расширение ТХТ на DOC у всех файлов в корневом каталоге текущего диска;

■ REN CURRENT.DAT *.OLD - изменить на OLD расширение файла CURRENT.DAT, содержащегося в рабочем каталоге;

■ REN CURRENT.DAT CURRENT.OLD - тоже;

■ REN CURRENT.DAT 1986.* - изменить на 1986 имя файла CURRENT.DAT, оставив то же расширение;

■ REN 02.ТХТ 1?.* - переименовать файл 02.ТХТ в файл 12.ТХТ;

■ REN 2.TXT 1?.* - переименовать файл 2.ТХТ в файл 1.ТХТ.

Команда ATTRIB

Назначение: изменение и отображение атрибутов файлов.

Тип: внешняя.

Синтаксис:

ATTRIB [ + R |-R ] [ + А|-А] pattern

Комментарии. Если в командной строке задан аргумент +х , то для всех файлов, сопоставленных с образцом в pattern , устанавливается атрибут х . В случае указания аргумента -х для выделенных по образцу в pattern файлов атрибут х сбрасывается. Если файл имеет атрибут х (не имеет атрибута х), то задание +х (-х ) для этого файла никакого влияния на него не оказывает.

Указание в команде только pattern обеспечивает выдачу на экран текущих атрибутов выде­ленных файлов без их изменения.

Переключатель /S распространяет действие команды на подходящие под шаблон файлы в каталогах, подчиненных выделенному по pattern (конечно, в выделенном каталоге файлы также обрабатываются). Следовательно, /S задает обработку файлов в целом поддереве файловой структуры по одному и тому же критерию.

Замечания:

Атрибут А позволяет управлять командами BACKUP и XCOPY, обеспечивающими резервное копирование файлов;

Установка атрибута R затрудняет удаление и модификацию файла, что удобно делать для файлов, совместно используемых (разделенных) в сети, а также для файлов с ценной информацией;

Дополнительные сведения об атрибутах файлов содержатся в п. 5.2.2;

Команда ATTRIB не позволяет устанавливать и сбрасывать атрибуты Н и S, а также просматривать атрибуты таких файлов;_

В качестве аргумента команды ATTRIB нельзя указывать спецификацию каталога (вместо этого используйте dir \*.*);

Последовательностью команд ATTRIB (устанавливая и сбрасывая определенный атрибут у разных подмножеств файлов с использованием образцов) можно быстро установить требуемые атрибуты тех или иных файлов;

Команду ATTRIB без атрибутов, но с переключателем /S, можно использовать для выдачи на экран всех файлов в файловой структуре или ее части, сопоставимых с заданным образцом.

Примеры:

■ ATTRIB +R C:\USER\XYZ.DAT - установить для указанного файла атрибут R;

■ ATTRIB -R +А *.ТХТ - установить атрибут А и сбросить атрибут R у всех файлов с расширением ТХТ в рабочем каталоге;

■ ATTRIB +А С:\*.* /S - установить атрибут А у всех файлов на диске в приводе С;

■ ATTRIB *.* - отобразить атрибуты всех файлов, содержащихся в рабочем каталоге;

■ ATTRIB +А С:\*.ТХТ /S - установить атрибут А у всех файлов с расширением ТХТ на диске в приводе С;

■ ATTRIB A:Pl.PAS - отобразить атрибуты файла PI.PAS, содержащегося в текущем каталоге диска в накопителе А;

■ ATTRIB +R C:\DOC\*.DOC /S - установить атрибут R у всех файлов с расширением DOC, содержащихся в поддереве файловой структуры диска в приводе С, корнем которого является каталог \DOC;

■ ATTRIB +А A:\V

ATTRIB -А A:\*.BAK - установить атрибут А у всех файлов в корневом каталоге диска в приводе А, за исключением тех файлов, которые снабжены расширением ВАК, а у последних атрибут А сбросить;

■ ATTRIB C:\*.UNI /S - отобразить атрибуты всех существующих на диске в приводе С файлов с расширением UNI (одновременно с этим выводятся и их спецификации, что позволяет найти все требуемые файлы).

Команда COMP

Назначение: сравнение содержимого файлов.

Тип: внешняя.

Синтаксис:

COMP \dir 2 \pattern 2 ]

Комментарии. Аргументы в командной строке задают два множества файлов, содержимое которых будет попарно сравниваться.

После ввода команды по первому аргументу выделяется исходное множество файлов, а по второму - целевое. Затем содержимое каждого файла из исходного множества сравнивается с содержимым того файла из целевого множества, составное имя которого получается подстановкой в pattern2 вместо имеющихся в нем символов-заменителей соответствующих фрагментов состав­ного имени файла из исходного множества. Файлы из исходного множества выбираются в том порядке, в каком они зарегистрированы в каталоге. Команда COMP сообщает о том, содержимое каких файлов она в данный момент сравнивает. Результаты сравнения содержимого пар файлов также выводятся на экран дисплея. Сравнение файлов завершается по исчерпании исходного множества. Поэтому число элементов в целевом множестве может превышать количество эле­ментов в исходном множестве, но не наоборот.

Если в командной строке задан только один аргумент, то считается, что он является первым. Когда в командной строке указано менее двух аргументов (один или не одного), то команда выдаст запросы на ввод с клавиатуры недостающих спецификаций. Запрос на ввод первого аргумента выглядит следующим образом:

Enter primary filename

(Введите первичное имя файла)

Второй аргумент должен быть задан в ответ на запрос

Enter 2nd filename or drive id

(Введите второе имя файла или идентификатор привода)

Задание в качестве аргумента спецификации pattern приводит к тому, что для сравнения выбираются те файлы, составные имена которых сопоставимы с шаблоном. Аргумент dir считается сокращением для dir \*.*.

При сравнении содержимого каждой пары файлов команда COMP сначала проверяет равенство их длин. Если размеры файлов различны, то появляется сообщение

Files are different sizes

(Файлы различаются по размеру)

и сравнение не производится.

В ходе работы COMP содержимое файлов сравнивается побайтно, а при несовпадении байтов в файлах на экран выводится сообщение нижеприведенного вида:

Compare error at OFFSET xxxxxxxx

(Ошибка сравнения при смещении xxxxxxxx)

Здесь х, у и z - шестнадцатеричные цифры, FTLE1 - ссылка на исходный, a FILE2 - на целевой файл. Смещение указывает номер байтов от начала файлов, на которых обнаружено несовпадение (нумерация начинается с нуля). Для каждого файла сообщается содержимое несовпавшего байта (числа хх и уу).

Сравнение двух файлов на этом не завершается, но после десяти несовпадений оно все же прекращается с выдачей сообщения

10 Mismatches - ending compare

(10 несовпадений - завершение сравнения)

При полном совпадении содержимого двух файлов на экран выводится сообщение

Files compare OK

(Файлы сравнились успешно)

Если маркеры EOF в сравниваемых файлах не найдены, то командой в процессе работы будет выдано сообщение

EOF mark not found

(Маркер EOF ненайден),

но это не ошибка, а возможная информация к размышлению, так как двоичные файлы и не должны иметь этих маркеров.

После успешного или неуспешного завершения сравнения очередной пары файлов из двух множеств команда COMP переходит к сравнению содержимого следующей пары.

По исчерпании исходного множества файлов появляется сообщение

Compare more files (Y/N)?

(Еще сравнивать файлы (Y-да/N-нет)?)

При ответе Y команда COMP предлагает Вам задать с клавиатуры два новых Множества для сравнения, и ее выполнение после ответов будет продолжено. В противном случае выполнение команды завершается.

Замечания:

Команда COMP сравнивает только содержимое файлов и не учитывает их физическое размещение на дисках;

Сравниваемые множества файлов могут содержаться в различных каталогах и на различных дисках;

Если по второму аргументу выделено пустое множество файлов, то выдается соответству­ющее сообщение. В случае, когда пустым является исходное множество, команда COMP просто запрашивает указание двух следующих пар множеств для сравнения;

Содержимое каталогов командой COMP не сравнивается;

Использование символа-заменителя * во втором аргументе позволяет не только задать множество файлов, но и упростить задание единственного файла;

Сравнение файла с самим собой обеспечивает проверку его считываем ости;

Для спецификации в качестве аргумента команды рабочего каталога удобно использовать точку,

Если требуется сравнить файлы на различных дискетах, а ПЭВМ не оборудована НЖМД, то следует запустить COMP с дискеты без указания, по крайней мере, второго аргумента Затек! после выдачи сообщения на ввод аргумента нужно заменить в приводах дискеты на требуемые и ответить на запрос.

Примеры:

■ COMP C:\DATA\P1.DAT A:\DATA\P2.DAT - сравнить содержимое указанных файлов;

■ COMP С:*ASM В:*.ВАК - сравнить файлы *ASM, содержащиеся в текущем каталоге диска в приводе С, с одноименными, но с расширением ВАК, файлами из текущего каталога диска в приводе В;

■ COMP С*ASM B:\PROGRAMS - сравнить файлы *ASM, содержащиеся в текущем каталоге диска в приводе С, с одноименными файлами из каталога \PROGRAMS диска в приводе В;

■ COMP С:*ASM *.ВАК - сравнить файлы *ASM из текущего каталога диска в приводе С с одноименными, но с расширением ВАК, файлами из рабочего каталога;

■ COMP - сравнить файлы, которые будут заданы в ответ на запросы команды;

■ COMP С:* ASM - сравнить файлы *ASM из текущего каталога диска в приводе С с файлами, которые будут заданы в ответ на запрос команды;

■ COMP С:\А:\ - сравнить все файлы из корневого каталога диска в приводе С с одноименными файлами, содержащимися в корневом каталоге диска в приводе А;

■ COMP C:\DATA А: - сравнить все файлы из каталога \DATA диска в приводе С с одноименными файлами, содержащимися в текущем каталоге диска в приводе А;

■ COMP A:CURRENT.DAT В:*.ВАК - сравнить файл CURRENT.DAT из текущего каталога диска в приводе А с фалом CURRENT.BAK, содержащимся в текущем каталоге диска в приводе В;

■ COMP A:CURRENT.DAT В: - сравнить тот же файл с одноименным файлом, содержащимся в текущем каталоге диска в приводе В;

■ COMP . А: - сравнить все файлы из рабочего каталога с одноименными файлами, содержащимися в текущем каталоге диска в приводе А;

■ COMP *.* А: - то же.

Команда FC

Назначение : сравнение содержимого файлов и отображение различий между ними.

Тип: внешняя.

Синтаксис.

Для двоичного сравнения:

FC filel file!

Для текстового сравнения.

FC filel file2

Комментарии. FC является усовершенствованной командой COMP. Последняя обеспечивает только побайтное, но не построчное сравнение содержимого файлов, причем сопоставление прекращается после десяти несовпадений. Команда же FC поддерживает режимы как двоичного (побайтного), так и текстового (построчного) сравнения.

При двоичном сравнении последовательно сопоставляется содержимое соответствующих байтов двух файлов и выдается список всех различий между ними, если они имеются (проверка файлов производится до конца, независимо от числа несовпадений). Сравнивать таким способом можно как двоичные, так и текстовые файлы.

При текстовом сравнении содержимое двух файлов сравнивается построчно, а внутри соот­ветствующих строк - побайтно (посимвольно). В случае нахождения первого различия в соот­ветствующих строках их сравнение прекращается. Затем утилита FC постарается найти в файлах такие места (точнее - строки), начиная с которых, они снова становятся одинаковыми. В результате этого определяются и выдаются на экран дисплея различающиеся в двух файлах фрагменты текста (последовательности строк). При удачном совмещении содержимого файлов после таких фрагментов сравнение продолжается. В противном случае выдается соответствующее этой ситуации сообщение и сравнение файлов завершается. Режим текстового сравнения целе­сообразно применять только для сравнения текстовых файлов.

В командной строке filel и file2 задают два файла, содержимое которых подлежит сравнению.

Результаты выполнения команды FC выводятся в форме, несколько отличающейся от COMP.

Переключатели в командной строке имеют следующий смысл:

/А - сократить (Abbreviate) объем выдачи при текстовом сравнении: вместо вывода не­совпадающих фрагментов целиком выдавать только их первые и последние строки;

/В - установить режим двоичного (Binary) сравнения файлов (принимается по умолчанию для файлов с расширениями EXE, COM, SYS, OBJ, LIB и BIN);

/С - игнорировать при текстовом сравнении различие в кодировке одноименных строчных и прописных букв (Case), рассматривая все буквы как прописные;

/L - установить режим текстового (Line - построчного) сравнения содержимого файлов (принимается по умолчанию для файлов, расширением имен которых не является EXE, COM, SYS, OBJ, LIB или BIN);

/LBm - установить размер внутреннего буфера (Line Buffer), достаточный для хранения за­данного посредством т числа строк (по умолчанию т = 100);

/N - отображать при текстовом сравнении не только сами различающиеся строки, но и их номера (Number);

/Т - не расширять символы табуляции (TAB) при текстовом сравнении в соответствующее число пробелов, которые приводят к размещению следующего символа в очередной позиции табуляции. По умолчанию такое преобразование файлов производится, что обеспечивает совпадение содержимого файлов, различающихся только по данному параметру (в одном файле все пробелы присутствуют явно, а в другом - заменены символами TAB);

/W - при текстовом сравнении сжимать «чистые» пробелы (White spaces - последователь­ности символов TAB и SP) в единственный пробел внутри каждой строки (между словами) и игнорировать их в начале, а также в конце строки. Указание этого переключателя (как и предыдущего) позволяет не принимать во внимание несущест­венные различия в сравниваемых текстовых файлах;

/n - задать посредством п число подряд совпавших строк при текстовом сравнении, чтобы считалось, что содержимое файлов снова согласовано (различающиеся фрагменты вы­делены и пройдены). Если совпало подряд после обнаружения расхождений меньшее количество строк, то они помещаются в различающиеся фрагменты текста и согласование содержимого файлов продолжается. По умолчанию в качестве п принимается число 2.

В случае двоичного сравнения отчет о различиях содержимого двух файлов выдается на экран в виде последовательности строк с тремя шестнадцатеричными числами следующего вида:

хххххххх: уу zz ,

гдехххххххх - порядковый номер несовпавших байтов (начиная с нуля, т.е. смещение относительно начала файла);

уу - содержимое несовпавшего байта первого файла;

zz - содержимое несовпавшего байта второго файла.

В режиме текстового сравнения несовпадающие фрагменты файлов выводятся на экран в следующем виде:

Последняя совпадающая строка

Отличающийся фрагмент первого файла

Последняя совпадающая строка

Отличающийся фрагмент второго файла

Первая вновь совпадающая строка

Здесь fuel и file2 - спецификации сравниваемых файлов. Отметим, что первая вновь совпадающая строка соответствует началу согласованных участков файлов.

Как уже подчеркивалось, при двоичном сравнении выводится информация о всех различиях. На это никак не влияют размеры файлов.

В режиме же текстового сравнения при обнаружении несоответствий необходимо осуществить просмотр файлов вперед с сохранением различающихся фрагментов. На возможность этого непосредственное влияние оказывает размер внутреннего буфера, задаваемый переключателем /LBm. В случае, когда буфер уже заполнен, а файлы еще не согласованы, выдается сообщение

Resync failed. Files are too different

(Повторная синхронизация не удалась. Файлы слишком различны)

и сравнение содержимого пары файлов прекращается. В этом случае можно увеличить размер буфера и повторить сравнение.

Если сравниваемые файлы имеют различные длины, то при достижении конца одного из них на экране появляется сообщение вида

fc: filel longer than file2

(filel длиннее, чем flle2)

В случае, когда содержимое сравниваемых файлов (с учетом установленных переключателями послаблений) полностью совпадает, выдается сообщение

fc: no differences encountered

(различийнеобнаружено)

Замечания:

Команда FC в PC DOS 3.3 отсутствует;

Указание в командной строке шаблонов и каталогов недопустимо;

При задании двух файлов с различными расширениями режим сравнения в общем случае следует специфицировать явно;

Допускается осуществлять сравнение содержимого файла с тем, что будет введено пользова­телем с клавиатуры, что достигается указанием в качестве одного из аргументов устройства CON;

Переключатель /С не обеспечивает игнорирование различий одноименных прописных и строчных букв кириллицы;

Переключатели не обязательно должны присутствовать только в начале командной строки;

Справедливы многие замечания, сделанные для команды COMP;

Команда FC может полностью заменить команду COMP, так как не обеспечивает сравнение содержимого множеств файлов.

Примеры:

■ FC /А MONTHLY.RPT SALES.RPT - сравнить содержимое заданных файлов в текстовом режиме с выдачей сокращенного отчета;

■ FC /LB500 /4 /L /W MYFILE.TXT YOURFILE.TXT - сравнить содержимое заданных файлов в текстовом режиме, причем размер буфера установить размером в 500 строк и считать файлы вновь согласованными при идентичности четырех строк подряд, а различия в количестве промежутков между словами во внимание не принимать.

Команда COPY

Назначение: копирование и сцепление (конкатенация) файлов.

Тип: внутренняя.

Синтаксис.

Для копирования файлов:

COPY {dirl\patternl}

Дляконкатенации файлов:

COPY{patternl\dirl}

{pattern2 | dir2 ]...

Комментарии . Очевидно, формат команды для копирования файлов является частным случаем формата для конкатенации файлов. Тем не менее мы умышленно (с целью упрощения изложения) не воспользовались имеющейся возможностью объединения двух форматов в один. Сначала рассмотрим порядок копирования, а затем - организацию конкатенации файлов. В заключение обсудим действие переключателей.

В синтаксисе для копирования файлов первый аргумент определяет, какие файлы-оригиналы подлежат дублированию, и поэтому называется исходным , а второй - место размещения и составные имена будущих файлов-дубликатов , в связи с чем называется целевым .

Как и в некоторых других командах, задание в качестве аргумента спецификации dir экви­валентно указанию dir \*.*.

Копированию подлежат те файлы из выделенного по исходному аргументу каталога, составные имена которых сопоставляются с шаблоном. Порядок копирования файлов определяется после­довательностью их вхождения в исходный каталог. Каждому дубликату присваивается составное имя, полученное путем замещения символов-заменителей в целевом аргументе соответствующими фрагментами составного имени файла-оригинала. Если целевой аргумент не задан, то копирование осуществляется в рабочий каталог.

Копирование файла «на себя» не допускается. При задании такого режима выполнения команды COPY на экран выводится сообщение

File cannot be copied onto itself

0 File (s ) copied

(Файл не может быть скопирован на себя.

Скопировано 0 файлов)

и копирование не производится.

При дублировании файла дата и время его создания (последней модификации) не изменяются.

Режим конкатенации файлов используется для объединения их содержимого в единый файл (или в несколько файлов). Это полезно главным образом для текстовых файлов, когда из их последовательности формируется единый документ. Данный режим можно использовать и для добавления фрагментов текста в конец существующего файла.

В режиме конкатенации множества сцепляемых файлов задаются в командной строке спе­цификациями образцов файлов (pattern ) и/или спецификациями каталогов (dir ), между которыми ставится символ +, возможно, ограниченный слева и справа последовательностями пробелов. Последний аргумент, которому не предшествует + , определяет местоположение и составные имена файлов, которые будут содержать результаты конкатенации. Таким образом, в режиме конкатенации может быть несколько исходных аргументов (но не менее одного) и только один - целевой . В случае задания только одного исходного аргумента один из возможных режимов (копирования или конкатенации) выбирается в соответствии с видом аргументов и это неодно­значности не вызывает. Как и в режиме копирования, в режиме конкатенации dir является сокращением для dir \*.*. Файлы, выделенные по исходным аргументам, будем называть исходными, а сформированные по целевому аргументу - результирующими.

Существует несколько вариантов реализации конкатенации в зависимости от того, какие аргументы и каким образом определены. В связи с этим рассмотрим три случая:

1) все исходные аргументы и целевой аргумент заданы шаблонами (или шаблоны подразумеваются);

2) по крайней мере, одним из исходных аргументов задан единственный файл, а целевой аргумент является шаблоном (или шаблон подразумевается);

3) в качестве целевого аргумента указан единственный файл.

В первом случае выполнение команды COPY сводится в определенном смысле к реализации последовательности «подкоманд» COPY. Аргументы каждой такой «подкоманды» аналогичны аргументам исходной команды, но конкретизированы вплоть до указания на единственные файлы. Конкретизация аргументов в командной строке команды COPY производится по элементам множества составных имен файлов, определяемого первым исходным аргументом. По составному имени каждого файла из этого множества осуществляется уточнение других аргументов путем подстановки вместо символов-заменителей в них соответствующих фрагментов этого составного имени. Описанный процесс, а следовательно, порядок «подкоманд» COPY, определяется порядком вхождения в каталог файлов, выделенных по первому исходному аргументу. Но это в данном случае на конечный результат выполнения команды COPY влияния не оказывает (не имеет значения, в какой последовательности формируются результирующие файлы).

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

В третьем случае содержимое исходных файлов последовательно сцепляется, а результат помещается в результирующий файл. Порядок конкатенации файлов определяется порядком задания исходных аргументов и вхождения исходных файлов в каталог. Сначала объединяются файлы, выделенные по первому исходному аргументу в порядке их вхождения в соответствующий каталог, затем - файлы, выделенные по второму исходному аргументу в том же порядке и т.д.

Когда целевой аргумент отсутствует, вместо него используется первый исходный аргумент. Никаких ошибок в этом случае не возникает, а выполнение команды COPY сводится к присо­единению к выделенным по первому исходному аргументу (уже существующим) файлам содер­жимого файлов, заданных остальными исходными аргументами. С учетом сделанных замечаний для данного варианта применим один из трех рассмотренных выше случаев. Такой способ задания командной строки является аббревиатурой (сокращением) для указания в качестве целевого первого исходного аргумента (т.е. когда первый исходный и целевой аргументы совпадают). Так,

COPY fllel+file2 filel

эквивалентно

COPY filel+file2

Однако если спецификации некоторых результирующих файлов (заданных явно или неявно первым аргументом) совпадают со спецификациями исходных файлов, выделенных не по первому аргументу, то для каждой такой пары выдается сообщение

Content of destination lost before copy

(Содержимое адресата (результирующего файла) потеряно до* копирования)

Оно говорит о том, что файл открыт для записи (создан заново) и поэтому нет возможности прочитать его старое содержимое для повторной записи. Выполнение команды COPY в таких случаях не прекращается, но содержимое каждого такого исходного файла в результирующий файл не переносится (тем самым теряется его первоначальное содержимое). Следовательно, обработка исходного и результирующего файлов с одинаковыми именами в «подкоманде» COPY осуществляется не всегда корректно.

Если один и тот же файл выступает в роли первого и целевого (пусть даже неявно заданного) аргумента, а также сопоставим с каким-либо еще аргументом, то приведенное выше сообщение о потере содержимого адресата выдается, но реально содержимое адресата не теряется. В этом случае просто игнорируется использование данного файла в роли непервого аргумента. Объяснение указанного факта состоит в том, что файл здесь открывается не для записи, а для добавления в конец. Описанная ситуация потенциально опасна, и ее лучше избегать.

Для файлов, создаваемых или обновляемых в режиме конкатенации, устанавливаются текущие дата и время создания (в то время как в режиме копирования эти характеристики файлов не изменяются).

При определении режима работы команды COPY в случае, когда задан единственный исходный аргумент, действует следующее правило: если в качестве целевого аргумента специфицирован единственный файл, а исходный аргумент указывает на множество файлов, то включается режим конкатенации; в противном случае выбирается режим копирования, который, очевидно, является частным случаем первого.

Выполняемые командой действия отображаются на экране дисплея путем выдачи составных имен обрабатываемых файлов.

После завершения копирования или конкатенации файлов на экране дисплея отображается сообщение

n File(s) copied

(Скопировано п файлов)

где п - число созданных файлов.

В командной строке можно использовать следующие переключатели, определяющие допол­нительные режимы выполнения команды COPY и уточняющие ее действие:

/А - осуществлять копирование (конкатенацию) в текстовом режиме;

/В - осуществлять копирование (конкатенацию) в двоичном режиме.

Переключатель /V независимо от того места, где он указан в команде, действует на всю командную строку (поэтому достаточно задать его один раз). Переключатель /А (/В) действует на предшествующий и все последующие аргументы до начала области действия переключателя /В (/А). Эти два переключателя несовместимы (конечно, для одного и того же, а не для разных аргументов команды).

Длина текстовых и двоичных файлов современными версиями DOS фиксируется по-разному. Для первых длина, указанная в соответствующем элементе каталога, определяющего значения не имеет (фактический размер файла может быть выяснен только путем последовательного чтения его содержимого до маркера EOF). Этого оказывается достаточным, так как прямой доступ к текстовым файлам неприменим. Обычно (но не всегда) реальная длина текстового файла (включая маркер EOF) все же совпадает со значением, указанным в элементе каталога. Однако проверить это в каждом конкретном случае можно только путем считывания содержимого файла. Несовпадение зарегистрированной и реальной длин возникает, в частности, при пользовании текстовыми редакторами, которые для ускорения работы осуществляют не посимвольную, а поблочную запись документа в файл. В результате реальная длина может оказаться меньше зарегистрированной, если последний блок неполон. Длина же двоичного файла определяется только по значению, указанному в элементе каталога. Необходимость такого подхода объясняется возможностью прямого доступа к содержимому двоичного файла, вследствие чего до начала чтения файла должна быть известна его длина. Наличие маркера EOF в конце двоичного файла не является обязательным.

Переключатели /А и /В как раз и задают условие окончания считывания файлов-оригиналов (исходных файлов) и правила оформления файлов-дубликатов (результирующих файлов).

При применении к файлам-оригиналам (исходным файлам) переключатели имеют следующий смысл:

/А - данные из файла копируются (считываются) вплоть до первого маркера EOF, но не включая его. Остаток файла не копируется (не считывается). При отсутствии маркера EOF или если файл имеет большую длину, чем указано в каталоге, команда COPY руководствуется сведениями о длине из соответствующего файлу элемента каталога;

/В - файл копируется (считывается) полностью в соответствии со значением в поле длины файла из элемента каталога.

Для файлов-дубликатов (результирующих файлов) эти переключатели интерпретируются так:

/А - после записи на диск дубликата (результирующего файла) в качестве последнего добавить маркер EOF;

/В - после записи файла на диск маркер EOF не добавлять.

Таким образом, переключатель /А используется главным образом для обработки текстовых, а /В - двоичных файлов.

Независимо от сочетания переключателей в командной строке и установленного режима работы команды COPY в элементы каталогов, описывающие файлы-дубликаты (результирующие файлы), заносятся реальные длины созданных файлов, т.е. количество записанных байтов, включая маркер EOF, если он в файл помещается.

По умолчанию в режиме копирования действует переключатель /В, а в режиме конкатенации файлов - переключатель /А. Последнее объясняется тем, что сцеплять имеет смысл только текстовые файлы.

Замечания:

Команда COPY является одной из наиболее часто используемых и наименее познанных команд DOS;

Как это ни парадоксально, но тем не менее сокращение d: для d:. в качестве исходного (но не целевого) аргумента в команде COPY не допускается;

Наряду с копированием файлов она поддерживает и их одновременное переименование;

Все заданные в режиме копирования исходными аргументами файлы реально дублируются, а не повторно регистрируются в других каталогах (пусть даже на том же диске);

При копировании (конкатенации) файлов оригиналы (исходные файлы) сохраняются без каких-либо изменений, если не используется вариант конкатенации файлов с добавлением данных в конец существующего файла;

Команда COPY является потенциально опасной командой: если при копировании файлов или их конкатенации (за исключением добавления данных в конец файла) в качестве дубликата (результирующего файла) указан уже существующий файл, то он перезаписывается без всякого предупреждающего сообщения; однако файлы с атрибутом R не замещаются;

Файлы с атрибутами Н и/ или S командой COPY не обрабатываются; атрибут R в файлы-дубликаты (результирующие файлы) из файлов-оригиналов (исходных файлов) не переносится; для файлов, созданных по целевому аргументу, всегда устанавливается атрибут А;

Первый аргумент в команде COPY должен быть всегда задан (по крайней мере, точкой);

Символ-заменитель * может использоваться не только для задания множества файлов, но и для упрощения задания единственного файла в качестве целевого аргумента в режиме копирования;

Нецелесообразно пользоваться переключателем /V часто, так как информация записывается на диск, как правило, без ошибок. Однако его следует указывать при обработке файлов с важной информацией, а также при записи на «сбойные» дискеты. Задание переключателя /V увеличивает время выполнения команды COPY. Альтернативным средством верификации записи информации на диски является команда VERIFY, действующая в отличие от переключателя /V на /все последующие операции записи на диск до отмены режима контроля этой же командой (пере­ключатель же /V действует только в рамках выполнения данной команды);

Переключатель /А (/В) может указываться и перед первым аргументом команды; тогда его действие распространяется на все последующие исходные аргументы до качала области действия переключателя /В (/А) и на целевой аргумент, причем его воздействие на последний ничем не отменяется;

Копирование текстовых файлов в текстовом режиме обеспечит приведение зарегистриро­ванных длин файлов в соответствие с реальными;

Копирование файлов на диск, содержимое которого не фрагментировано (в частности, на полностью пустой диск) позволяет реализовать их дефрагментацию;

При попытке дублирования файлов с защищенных от перезаписи дискет операция копи­рования может внешне завершиться успешно, но на самом деле некоторые файлы могут быть скопированы не полностью;

В команде COPY в качестве спецификаций файлов допускается и даже часто целесообразно задавать имена посимвольных устройств, чтобы записать текстовый файл с устройства ввода или вывести его на устройство вывода;

Переключатель /V при копировании на посимвольное устройство отвергается;

В режиме копирования символы ТАВ в последовательности пробелов не разворачиваются. По этой причине команду COPY не всегда целесообразно использовать для вывода текстов на посимвольные устройства. Лучше для этих целей применять команды TYPE и PRINT;

Команда COPY не обеспечивает копирования поддерева файловой структуры. Для реализации этого служит команда XCOPY.

Примеры :

■ COPY A: \MYFILE.DAT В:М YFILE.BAK - скопировать файл MYFILE.DAT из корневого каталога диска в приводе А в текущий каталог диска в приводе В и присвоить дубликату имя MYFILE.BAK;

■ COPY A:\MYFILE.DAT В:*.ВАК - то же;

■ COPY A:\MYFILEJDAT - скопировать указанный файл в рабочий каталог (без переименования);

■ COPY MYFILE.DAT В: - скопировать указанный файл из рабочего каталога в текущий каталог диска в накопителе В;

■ COPY MYFILE.DAT B:\DATA - скопировать указанный файл из рабочего каталога в каталог \DATA диска в приводе В;

■ COPY A:*.BAS С: - скопировать все файлы с расширением BAS из текущего каталога диска в приводе А в текущий каталог диска в приводе С;

■ COPY A:*.BAS С:*.ВАК.- то же, но у дубликатов меняется расширение с BAS на ВАК;

■ COPY А: . В: - скопировать все файлы из текущего каталога диска в приводе А в текущий каталог диска в приводе В;

■ COPY А:. В:*.ВАК - то же, но расширение имен файлов заменить на ВАК;

■ COPY . B:UTILS - скопировать все файлы из рабочего каталога в каталог UTILS, содержащийся в текущем каталоге диска в приводе В;

■ COPY MAIN .PAS + P 1.PAS + P 2.PAS MYPROG .PAS - сцепить в указанном порядке содер­жимое файлов MAIN .PAS , P 1.PAS и P 2.PAS с записью результата в файл MYPROG .PAS (все файлы обрабатываются в рабочем каталоге);

■ COPY *.ТХТ+ *.REF *.DOC - сцепить каждый файл с расширением ТХТ с одноименным файлом, но имеющим расширение REF, и записать результат в файл с тем же именем и расширением DOC (все файлы обрабатываются в рабочем каталоге);

■ COPY *.ТХТ +R.REF *.DOC - найти в рабочем каталоге первый ТХТ-файл, присоединить к нему содержимое файла R.REF и поместить результат в файл с тем же именем, что и ТХТ-файл, но с расширением DOC;

■ COPY R.TXT + *.REF *.DOC - присоединить к файлу R.TXT содержимое всех REF-файлов из рабочего каталога и поместить результат в файл R.DOC;

■ COPY *.ТХТ COMBIN.DOC - объединить все файлы с расширением ТХТ в единый файл COMBIN.DOC; очередность обработки исходных файлов зависит от порядка их вхождения в рабочий каталог,

■ COPY *.TXT+R.REF COMBIN.DOC - то же, но в конец файла COMBIN.DOC дополнительно записывается содержимое файла R.REF;

■ COPY *.TXT+*.REF COMBIN.DOC - сцепить последовательно все файлы с расширением ТХТ, присоединить к ним содержимое всех файлов с расширением REF и поместить результат в файл COMBIN.DOC; порядок выбора ТХТ- И REF-файлов зависит От по­следовательности их вхождения в рабочий каталог,

■ COPY А:. + В:. С: - сцепить попарно все файлы из текущего каталога диска в приводе А с одноименными файлами из текущего каталога диска в приводе В и поместить результаты в текущий каталог диска в приводе С под теми же именами;

■ COPY *.ТХТ ALL.TXT - сцепить содержимое всех файлов с расширением ТХТ и записать результат в файл ALL.TXT; если файл ALL.TXT существовал, то его первоначальное содержимое будет потеряно и не скопируется в новую версию файла;

■ COPY ALL.TXT+ *.ТХТ - то же, но результат конкатенации будет содержать в префиксе первоначальное содержимое файла ALL.TXT, хотя и выдается сообщение о потере содержимого результирующего файла;

■ COPY ALL.TXT+ *.ТХТ ALL.TXT - то же;

■ COPY MEMO.DOC /А LETTER.DOC - скопировать содержимое файла MEMO.DOC в файл LETTER.DOC в текстовом режиме (/А действует на оба аргумента);

■ COPY F1.TXT /А F2.TXT /В - скопировать содержимое файла F1.TXT в файл F2.TXT с отсечением маркера EOF, если он в первом файле имеется;

■ COPY F1.TXT /А F2.TXT - скопировать содержимое файла F1.TXT в файл F2.TXT с тем, чтобы зарегистрированную длину файла привести в соответствие с реальной;

■ COPY MYFILE.TXT CON - отобразить содержимое файла MYFILE.TXT на экране дисплея;

■ COPY MYFILE.TXT PRN - распечатать содержимое файла MYFILE.TXT на принтере;

■ COPY CON AUTOEXEC.BAT - создать файл AUTOEXEC.BAT и записать в него текст, заданный с клавиатуры (ввод текста завершается нажатием клавиши F6, а вслед за ней - Enter);

■ COPY AUTOEXEC.BAT + CON - дополнить файл AUTOEXEC.BAT информацией, введенной с клавиатуры;

■ COPY MYFILE.TXT/В + NUL/A MYFILE.TXT/В - изменить дату и время создания файла MYPROG.TXT на текущие;

■ COPY /В MYFILE.TXT+NUL/A MYFILE.TXT - то же;

■ COPY MYFILE.TXT /В + „ - то же;

■ COPY CON PRN - скопировать ввод с клавиатуры непосредственно на принтер (печать будет осуществлена вслед за вводом с клавиатуры маркера EOF, а в остальном будет полностью имитироваться пишущая машинка).

Команда XCOPY

Назначение: копирование файлов и подкаталогов.

Тип: внешняя.

Синтаксис:

XCOPY {dirl | patternl }

Комментарии. Данная команда (ее имя - аббревиатура от eX tended COPY) является расши­ренным вариантом команды COPY в режиме копирования и дополнительно обеспечивает

1) выделение подлежащих копированию файлов не только по образцу составного имени файла, но и по другим критериям;

2) копирование поддеревьев файловой структуры.

Кроме того, XCOPY использует для своей работы всю свободную оперативную память и поэтому работает гораздо быстрее.

Если в командной строке задан один аргумент, то он является исходным и определяет подлежащие копированию файлы (файлы-оригиналы), а дубликаты в этом случае будут размещаться в рабочем каталоге.

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

Если в качестве аргумента указан каталог dir , а не pattern , то предполагается спецификация dir \*.* (все файлы в каталоге).

Копированию подлежат те файлы в выделенном по исходному аргументу каталоге, составные имена которых сопоставляются с заданным образцом. Каждый дубликат при этом размещается в выделенном по целевому аргументу каталоге и ему присваивается составное имя, полученное путем подстановки вместо символов-заменителей целевого аргумента соответствующих фрагмен­тов составного имени файла-оригинала. В частном случае (если в целевом аргументе указано или предполагается *.*) имена файлов сохраняются.

Таким образом, правила задания аргументов здесь аналогичны команде COPY.

В связи с тем, что XCOPY (как мы увидим ниже) в отличие от команды COPY Может создавать каталоги, она не всегда в состоянии однозначно интерпретировать свои аргументы. В таких случаях пользователю выдается запрос. Например, при задании в качестве целевого аргумента спецификации без символов-заменителей не всегда можно определить, что же в конечном счете требуется пользователю: поместить дубликат в указанный файл (естественно, создав его) или рассматривать эту спецификацию как каталог, в который требуется скопировать файл. Команда XCOPY принимает в данной ситуации однозначное решение, если целевой аргумент указывает на существующий каталог (файл копируется в него с сохранением имени). В противном же случае выдается сообщение

Does string specify a file name

or directory name on the target

(F=fiie D = directory)?

(Задает ли string в (целевом аргументе) имя файла

или имя каталога

(F= файл D = каталог)?)

Пользователю следует ответить F или D по своему усмотрению. При ответе D создается новый каталог, и в нем будет размещен дубликат. В случае ответа F осуществляется копирование файла с переименованием.

Факультативные переключатели в команде XCOPY имеют следующий смысл:

/А - копировать из выделенных по шаблону только те файлы, которые имеют атрибут

А. При этом атрибуты файлов-оригиналов не модифицируются. Переключатель /А несовместим с /М;

/М - то же, но после копирования атрибут А у оригиналов сбрасывается. Этот переклю-

чатель несовместим с /А;

/D:date - копировать из выделенных по шаблону только созданные не раньше указанной даты (date) файлы. Для получения дополнительной информации см. описание команды DATE в этом же пункте;

/S -копировать не только заданные исходным аргументом файлы, но и файлы во всех

подчиненных выделенному по pattern каталогах с учетом ограничений, накладываемых шаблоном и переключателями. При этом структура поддеревьев воспроизводится полностью, за исключением пустых каталогов (последние отбрасываются);

/Е - копировать и пустые подкаталоги. Этот переключатель используется только совместно с /S;

/Р - запрашивать у пользователя подтверждение на копирование каждого выделенного

файла (Y/N);

/V - контролировать правильность записи информации на диск путем проверки считываемости;

/W - сделать в начале выполнения команды паузу с выдачей сообщения «Press any key when ready to start copying files* («Нажмите любую клавишу при готовности начать копирование файлов»). Пользователь может поступить в соответствии с предписанием для продолжения выполнения команды или нажать комбинацию клавиш Ctrl-Break для ее завершения.

Переключатель /D совместим с переключателем /А (/М), и оба они действуют в качестве дополнительного ограничителя множества файлов-оригиналов.

Сообщения, выдаваемые на экран в процессе выполнения XCOPY, аналогичны сообщениям, отображаемым командой COPY.

Команда XCOPY генерирует следующие коды возврата:

0 - копирование прошло без ошибок;

1 - для копирования не найдено ни одного файла;

2 - выполнение команды принудительно завершено пользователем путем нажатия комбинации клавиш Ctrl-Break;

4 - ошибка инициализации (недостаточно внешней памяти для выполнения команды, неправильный синтаксис команды или заданы аргументы, не соответствующие реальной фай­ловой структуре и конфигурации оборудования);

5 - критическая ошибка ввода-вывода, на которую пользователь прореагировал ответом А.

Замечания. Было бы неправильным считать, что при наличии утилиты XCOPY использование команды COPY нецелесообразно. Дело в том, что последняя все же имеет следующие преимущества:

Является внутренней, а поэтому запускается быстрее и пользоваться ею более удобно;

Команда COPY допускает использование имен последовательных устройств вместо специ­фикаций файлов, a XCOPY - нет;

Команда COPY обеспечивает конкатенацию файлов, a XCOPY - нет,

Командой COPY в отличие от XCOPY обеспечивается возможность явного задания текстового или двоичного режима копирования файлов (XCOPY поддерживает только двоичное копирование).

Преимущества команды XCOPY были перечислены выше.

В отношении XCOPY можно сделать следующие замечания, аналогичные, но не полностью совпадающие с указанными для команды COPY:

Файлы-оригиналы и каталоги-оригиналы сохраняются без каких-либо изменений;

При копировании в существующие файлы, не имеющие атрибута R, они заменяются заданными в команде оригиналами (т.е. уничтожаются и создаются заново); если же атрибут R установлен, то выдается сообщение «Access denied* («Доступ отвергнут») и копирование не производится. Копирование же поддерева файловой структуры сопровождается не заменой, а пополнением содержимого каталогов, возможно, уже существующего поддерева, на которое указывает целевой аргумент. В данном случае никакой подкаталог не заменяет даже одинаково размещенный и так же поименованный каталог. Вместо этого копируются только файлы и добавляются соответствующие им элементы подкаталогов. Отсутствующие каталоги, конечно, создаются. Такая техника позволяет сохранить уже созданное поддерево каталогов и содержащиеся в нем файлы, если при дублировании не возникает коллизий составных имен файлов;

Файлы с атрибутами Н и/или S командой XCOPY не обрабатываются, а при копировании файлов с атрибутом R последний не переносится. Для файлов-дубликатов всегда устанавливается атрибут А;

Дата и время создания файлов при копировании не изменяются;

Рабочий каталог в исходном аргументе удобно задавать точкой;

Символ-заменитель * может использоваться не только для задания множества файлов, но и для упрощения задания единственного файла в качестве целевого аргумента;

Задание переключателя /V замедляет выполнение команды, но придает уверенность при дублировании ценной информации. Альтернативой переключателя /V является команда VERIFY, которая включает и выключает контроль записи на диск для всех последующих операций;

Команда XCOPY в случае подходящего (нефрагментированного) размещения информации на целевом диске обеспечивает дефрагментацию файлов;

Дублирование файлов с защищенных от копирования дискет к успеху не приводит (как, впрочем, и выполнение команды DISKCOPY, а также COPY);

Символы TAB в последовательности пробелов не разворачиваются;

Все заданные исходными аргументами файлы реально дублируются, а не повторно реги­стрируются в других каталогах (пусть даже на том же диске).

Кроме того:

Следует четко представлять себе, что в качестве исходного аргумента команды XCOPY семан­тически указывается не каталог, находящийся в корне копируемого поддерева файловой структуры, а содержащиеся в каталоге элементы и компоненты файловой структуры, подлежащие копированию;

Использование переключателя /W облегчит выполнение копирования информации с дискеты на дискету при наличии в ПЭВМ только двух НГМД и отсутствии НЖМД. Для этого надо запустить утилиту XCOPY с дискеты, а перед ответом на сообщение по /W заменить дискеты на требуемые для дублирования;

Циклическое копирование выполнять запрещается (каталог, в который осуществляется копирование, не должен входить в копируемое поддерево файловой структуры);

Команду XCЦPY следует использовать вместо DISKCOPY при копировании всего содер­жимого одной дискеты на другую, имеющую иной формат,

Для устранения неоднозначности целесообразно в качестве аргументов команды XCOPY по возможности не использовать dir, а задавать только pattern , в частности, dir\*.*\;

Сокращение d: для d\. допускается в качестве любого аргумента в командной строке;

Команда XCOPY с переключателями /S и /М является функциональным аналогом команды резервирования BACKUP и имеет следующие особенности: работает быстрее, чем BACKUP; файлы могут быть восстановлены этой, же командой или командой COPY, но не RESTORE; не позволяет резервировать файлы, размер которых превышает емкость дискеты; не разрушает файловую структуру целевого диска; при необходимости зарезервировать все файлы требует предварительного выполнения команды ATTRIB с переключателем /S, чтобы затем использовать в командной строке переключатель /М (без него XCOPY не позволит продублировать файлы, суммарный размер которых превышает емкость дискеты, без явного удаления уже зарезервированных).

Примеры:

■ XCOPY *.DAT В: - скопировать все файлы с расширением DAT из рабочего каталога в текущий каталог диска в приводе В; к

■ XCOPY А: - скопировать все файлы из текущего каталога диска в накопителе А в рабочий каталог,

■ XCOPY *.BAS *.ВАК - скопировать все файлы с расширением BAS из рабочего каталога в тот же каталог с одновременным изменением расширений на ВАК;

■ XCOPY *.* А:\ - скопировать все файлы из рабочего каталога в корневой каталог диска в приводе А;

■ XCOPY А:\ В:\ /S/Е - скопировать содержимое диска в приводе А на диск в приводе В.

Если последний пуст, а первый не содержит файлов с атрибутами Н и S, то диск в приводе В станет логической копией диска в приводе А. В противном случае файловая структура целевого диска пополнится файловой структурой исходного, если не принимать во внимание скрытые и системные файлы;

■ XCOPY C:\*.DAT А:\ /S - скопировать все файлы с расширением DAT с диска в приводе С на диск в приводе А с сохранением их размещения в файловой структуре;

■ XCOPY С:\А:\ /S/М - скопировать все файлы, которые были модифицированы или созданы после последнего выполнения такой же команды, сохраняя их размещение в файловой структуре, с диска в приводе С на диск в приводе А;

■ ATTRIB С:\ +А /S

XCOPY С:\ А:\ /S/M - скопировать (зарезервировать) файловую структуру диска в приводе С на последовательность дискет в приводе А (за исключением пустых каталогов). Как только очередная дискета заполнится, XCOPY выдаст сообщение «disk fu ll», после чего следует установить чистую дискету и вновь ввести команду XCOPY. Если повторить описанные действия до тех пор, пока все файлы и каталоги не будут продублированы, то на дискетах получится резервная копия жесткого диска. Для восстановления информации на нем в случае ее разрушения можно воспользоваться командой COPY или XCOPY;

■ XCOPY C:\LOTUS /D:10-22-91 - скопировать файлы из каталога \LOTUS диска в приводе С, созданные не раньше 22.10.91 г., в рабочий каталог,

■ XCOPY C:\L014JS /А - то же, но копируются только файлы, имеющие атрибут А, независимо от даты их создания;

■ XCOPY C:\LOTUS /А /D:10-22-91 .- скопировать из каталога \LOTUS диска в приводе С файлы, созданные не раньше 22.10.91 г. и имеющие атрибут А, в рабочий каталог;

■ XCOPY C:\LOTUS /А /D: 10-22-91 /S - то же, но дополнительно копируются поддеревья файловой структуры, корни которых содержатся в каталоге \ LOTUS, включая только файлы, удовлетворяющие тем же ограничениям. Пустые каталоги не дублируются;

■ XCOPY А:\*.ЕХЕ В:\ /S/Е - скопировать файловую структуру диска в приводе А с учетом только файлов с расширением ЕХЕ и всех (в том числе пустых) каталогов на диск в приводе В. Корнем дубликата будет корневой каталог этого диска.

Команда REPLACE

Назначение: копирование файлов с заменой или без замены существующих файлов.

Тип : внешняя.

Синтаксис :

REPLACE pattern

Комментарии. REPLACE предоставляет пользователю дополнительные по сравнению с ко­мандами COPY и XCOPY возможности по копированию файлов.

Спецификация pattern задает множество файлов, подлежащих копированию, а dir - каталог, в который требуется поместить дубликаты. При этом составные имена дубликатов всегда будут совпадать с составными именами файлов-оригиналов. Первый аргумент (pattern ), как обычно, назовем исходным, а второй (dir ) - целевым. Если целевой аргумент не задан, то подразумевается рабочий каталог.

Без переключателей команда REPLACE осуществляет замену существующих в целевом каталоге файлов одноименными файлами из множества, выделенного по исходному аргументу. Таким образом, копируются не все выделенные по pattern файлы, а только те из них, которые существуют в целевом каталоге.

В командной строке допустимы следующие, переключатели:

/S - осуществить поиск одноименных выделенным по pattern файлов во всем поддереве файловой структуры с корнем dir и найденные файлы заменить соответствующими файлами-оригиналами путем копирования последних. Ненайденные по целевому аргументу файлы не дублируются. Поддеревья, файловой структуры, доступные по исходному аргу­менту, в глубину при поиске исходных файлов не просматриваются. Этот переключатель несовместим с /А;

/А - дополнить содержимое dir теми файлами из выделенных по pattern , составные имена которых не зарегистрированы в dir (т.е. проинвертировать действие команды). В результате этого копируются только новые для dir файлы. Переключатель /А несовместим с /S и отменяет действие /R;

/R - обеспечить возможность замены не только файлов без атрибута R, но и с таким атрибутом. Этот переключатель не имеет смысла указывать совместно с /А;

/Р - запрашивать у пользователя подтверждение на запись каждого файла на диск по целевому аргументу (для замены или добавления) путем выдачи сообщения «Replace file (Y/N)?»;

/W - в начале выполнения команды сделать паузу с выдачей на экран дисплея сообщения «Press any key when ready* («Затем нажмите любую клавишу») или «Press any key to continue* («Нажмите любую клавишу для продолжения»).

По завершении выполнения команды на экран дисплея выводится сообщение

п file(s) added/replaced

(n файл(ов) добавлено/заменено)

No files added/replaced

(Никакие файлы не добавлены/не заменены)

Команда REPLACE вырабатывает следующие коды возврата:

0 - успешное завершение;

2 - файл не найден;

3 - маршрут не найден;

5 - доступ запрещен (попытка замены файла с атрибутом R без переключателя /R);

8 - недостаточно памяти для выполнения команды;

11 - ошибка в командной строке;

15 - ошибочно задан привод.

Замечания:

― команду REPLACE целесообразно использовать для замены старой версии программного продукта новой версией, а также для ускорения добавления отсутствующих файлов;

Спецификация каталога в качестве исходного аргумента не допускается;

Файлы с атрибутами Н и/ил и S командой REPLACE не обрабатываются;

Атрибут /R в дубликат не переносится;

У каждого дубликата всегда взводится атрибут /А;

Никакие каталоги командой REPLACE не создаются;

Переключатель /W обеспечивает удобство работы на ПЭВМ, не оборудованной же­стким диском.

Примеры:

■ REPLACE *.* D: - заменить существующие в текущем каталоге диска в приводе D файлы одноименными файлами из рабочего каталога;

■ REPLACE А:\*.* С:\ /S - заменить каждый файл в любом каталоге диска в приводе С, совпадающий с одним из файлов в корневом каталоге диска в приводе А, последним;

■ REPLACE A:\*.PRD C:\MSTOOLS /А - дополнить каталог C:\MSTOOLS PRD-файлами из корневого каталога диска в приводе А.

DOS 4.0. Допустим дополнительный переключатель /U, разрешающий замену только в том случае, когда файл-оригинал создан позже (по дате и времени) подлежащего замене одно­именного файла.

Команда TYPE

Назначение: отображение содержимого файла.

Тип: внутренняя.

Побайтное сравнение двух или нескольких файлов. Команда comp позволяет сравнивать файлы, находящиеся на разных дисках и в разных каталогах. При сравнении файлов с помощью команды comp выводятся их имена и расположения. Выполненная без параметров команда comp запрашивает файлы для сравнения.

Синтаксис

comp [файл1 ] [файл2 ] [/d ] [/a ] [/l ] [/n= кол_строк ] [/c ]

Параметры

файл1 Задание имени и расположения первого файла или набора файлов для сравнения. Для указания нескольких файлов можно использовать подстановочные знаки (* и?). файл2 Задание имени и расположения второго файла или набора файлов для сравнения. Для задания нескольких файлов можно использовать подстановочные знаки (* и?). /d Вывод различий в десятичном формате. (По умолчанию используется шестнадцатеричный формат.) /a Вывод различий в символьном виде. /l Вывод номера строки, в которой обнаружено различие, вместо отображения смещения в байтах. /n= кол_строк Сравнение первых нескольких строк, заданных параметром кол_строк , обоих файлов, даже если эти файлы имеют разный размер. /c Сравнение без учета регистра. /? Отображение справки в командной строке.

Примечания

  • Сравнение файлов с одинаковыми именами

    Если сравниваются файлы с одинаковыми именами, они должны находятся в разных каталогах или на разных дисках. Если в параметре файл2 не указано имя файла, предполагается, что имя файл2 совпадает с именем файл1 . Для задания имен файлов можно использовать подстановочные знаки (* и?).

  • Неполное задание параметров файл1 и файл2

    Если имена файлов файл1 или файл2 введены не полностью или параметр файл2 пропущен, программа comp выведет на экран запрос для получения недостающих сведений. Если параметр файл1 содержит только имя диска или каталога без имени файла, команда comp сравнивает все файлы в заданном каталоге с файлом файл2 . Если параметр файл2 содержит только имя диска или каталога, будет предполагаться, что имя файла файл2 такое же, как в параметре файл1 .

  • Вывод информации о несовпадениях

    В процессе сравнения программа comp выводит сообщения с указанием расположения несовпадающих байтов в файлах. В каждое сообщение включены сведения о смещении адреса несовпадающих байтов и содержимое этих байт (в шестнадцатеричном формате, если не указан параметр /a или /d ). Эти сообщения имеют следующий формат:

    Ошибка сравнения OFFSET xxxxxxxx

    После того как найдено 10 различий, работа команды comp прекращается и выводится следующее сообщение:

    Обнаружено 10 различий. Сравнение завершено.

  • Сравнение файлов разного размера

    Чтобы сравнить файлы разных размеров, необходимо указать параметр /n . Если файлы имеют различные размеры, comp выводит следующее сообщение:

    Разные размеры файлов

    Нажмите клавишу Y для сравнения следующей пары файлов. Нажмите клавишу N для завершения выполнения команды comp .

    При нажатии клавиши Y команда comp продолжает сравнение с заданными параметрами, пока не будет нажата клавиша N или заново введена эта команда.

    При работе с файлами разного размера воспользуйтесь параметром /n , чтобы сравнить только начала файлов.

  • Последовательное сравнение файлов

    Если использованы подстановочные знаки (* и?) для задания нескольких файлов, comp найдет первый файл, удовлетворяющий шаблону файл1 , и выполнит его сравнение с соответствующим файлом файл2 , если он существует. Команда comp выводит результаты сравнения и проводит сравнение всех файлов, удовлетворяющих шаблону файл1 . После завершения работы comp будет выведено следующее сообщение:

    Сравнить другие файлы ?

    Чтобы сравнить другие файлы, нажмите клавишу Y . Команда comp запросит расположения и имена новых файлов. Чтобы завершить сравнение, нажмите клавишу N . При нажатии клавиши Y команда comp запрашивает параметры командной строки. Если эти параметры не заданы, программа comp использует параметры, введенные ранее.

  • Если файлы не найдены

    Если командой comp не найдены указанные файлы, выводится запрос на продолжение сравнения.

Примеры

Чтобы сравнить содержимое каталога C:\Reports с содержимым каталога резервных копий \\Sales\Backup\April, введите следующую команду:

comp c:\reports \\sales\backup\april

Чтобы сравнить первые десять строк файлов в каталоге \Invoice и вывести результат в десятичном формате, введите следующую команду:

comp \invoice\*.txt \invoice\backup\*.txt /n=10 /d



 

Пожалуйста, поделитесь этим материалом в социальных сетях, если он оказался полезен!