Запись в потоки ntfs
И еще, хотелось бы вспомнить о таком понятии как «копирование в потоки». Данный вопрос я частично затронул в статье с примерами по Windows Script Host при описании метода CreateTextFile объект FileSystemObject. Данная возможность предоставляется только на файловой системе NTFS.
В простом варианте суть дела такова, к каждому документу или диску можно привязать свой поток, и записать информацию непосредственно в поток, то есть, информация будет записана, но сам документ не изменит своего размера. Давайте проделаем простенький эксперимент, пропишем в командной строке:
Команда copy для копирования одного или нескольких файлов.
Команда COPY при работе в командной строке позволяет копировать один или несколько файлов. Команда имеет синтаксис: COPY[/D][/V][/N][/Y | /-Y][/Z][/L][/A | /B]источник[/A | /B][ источник[/A | /B] [ …]][результат [/A | /B]]. Источником является имя копируемого файла, а результатом является каталог, в который будет помещена копия этого файла и/или имя создаваемого файла.
Для примера, создадим на диске «С» какой-нибудь файл (я создал текстовый файл «robot.txt»), а на диске «D» какую-нибудь папку (я создал папку «folder1»). Тогда команда для копирования файла «robot.txt» в папку «folder1» выглядит так: copy robot.txt d:folder1
Если необходимо скопировать файл, изменив при этом его имя, необходимо записать следующую команду: copy robot.txt d:folder1file.txt В этом случае, файл «robot.txt» будет скопирован в папку «folder1», но уже с именем «file.txt».
Для того чтобы скопировать все файлы с выбранным расширением, необходимо вместо названия файла поставить звездочку «*». Например, создадим на диске «С» какую-нибудь папку (я создал папку «papka») и скопируем в нее все текстовые файлы из папки «folder1», расположенной на диске «D». Команда будет иметь вид: copy d:folder1*.txt c:papka
Если в качестве [результата] не указывать каталог, то команда copy скопирует файл (или файлы) и поместит их в текущем каталоге. При этом скопированные файлы будут иметь то же имя, дату и время создания, что и исходный файл. Например, создадим в папке «folder1», расположенной на диске «D» текстовый файл с именем «robot1.txt». После этого в командной строке изменим текущий каталог с «C:>» на «C:Papka». Тогда команда copy d:folder1robot1.txt скопирует файл «robot1.txt» из папки «folder1» и поместит его в текущем каталоге, т.е. в папку «papka», расположенную на диске «C». Причем, имя, дата и время создания скопированного файла будет идентично исходному файлу.
Для того чтобы скопировать все файлы из определенного каталога, необходимо вместо названия файла поставить звездочку «*» и вместо расширения файла поставить звездочку «*». Например, создадим в папке «folder1» несколько файлов, имеющих различные расширения (документ Word, архив Rar и т.д.). Тогда команда для копирования всех файлов из папки «folder1» на диск «C» будет выглядеть: copy d:folder1*.* c:
[Источником] или [результатом] копирования могут выступать не только файлы, но и различные устройства компьютера. В Windows поддерживаются следующие имена устройств:
Например, с помощью командной строки и команды «copy» можно создать текстовый файл и записать в него информацию: copy con f1.txt. Команда copy con f1.txt создаст текстовый файл «f1.txt» и скопирует в него символы, которые вы будете вводить с клавиатуры.
После ввода команды copy con f1.txt нажимаем Enter и вводим слова, которые необходимо сохранить (я ввел command com). После ввода необходимо поставить признак конца файла (нажать Ctrl Z).
C помощью команды copy можно объединять несколько файлов в один файл. Например, создадим на диске «C» два файла f2.txt и f3.txt (файл f1.txt мы создали ранее) и запишем в эти файлы какую-нибудь информацию. Тогда команда copy f1.txt f2.txt f3.txt d:f4.txt скопирует содержимое файлов «f1.txt», «f2.txt», «f3.txt» в файл «f4.txt», который будет автоматически создан на диске «D».
Если при объединении файлов не указывать файл – [результат], то вся информация будет сохранена в первом файле. Например, команда copy f1.txt f2.txt f3.txt добавит к содержимому файла f1.txt содержимое файлов f2.txt и f3.txt
Ключ /Y отключает вывод сообщения о замене файлов. По умолчанию, при копировании файлов, если такой файл существует, то на экран выводится сообщение с предупреждением о замене. Пользователь может согласиться с заменой (нажать Y) или не согласиться (нажать N). Ключ /Y отключает это сообщение и копирование происходит сразу. Для примера создадим на диске «C» файл vov.txt и скопируем его на диск «D»: copy vov.txt d:
Затем скопируем этот файл еще раз. При этом выводится сообщение «Заменить d:vov.txt [Yes (да)……»
После этого скопируем файл еще раз, употребив ключ /Y. Сообщение выводиться не будет.
Ключ /Y может присутствовать в значении переменной среды окружения COPYCMD. Т.е. по умолчанию, при замене файлов сообщение выводиться не будет. В этом случае, для того чтобы сообщение выводилось необходимо использовать ключ /-Y.
Предыдущая статья: Команда ATTRIB для изменения атрибутов файла.
Оглавление: Командная строка.
Следующая статья: Команда XCOPY.
Командная строка xcopy
XCOPY источник [результат] [/A | /M] [/D[:дата]][/P] [/S [/E]] [/V]
[/W][/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R][/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:файл1[ файл 2][ файл 3]…]Источник – указываем путь к файлу (файлам), который нужно скопировать.
Результат – указываем место, куда нужно скопировать файл через командную строку. Если данный параметр отсутствует, то документы будут дублироваться в текущий каталог.
/V – как и в предшествующей версии, данный параметр отвечает за проверку телесности документов, но, уже не является обязательным, поскольку проверка осуществляется самой системой. Он остался лишь для совместимости с предыдущими версиями MS-DOS.
/EXCLUDE:файл1[ файл 2][ файл 3]… – позволяет исключить несколько файлов или папок из процесса копирования. Тут все просто, надо только указать имена объектов, которые следует исключить, но, нельзя использовать спецсимволы, типа «*» и «?».
Ключи файл1, файл2, … указывают на документы, в которых прописаны строки, каждая строка должна находится в отдельной линии. Если же хоть одна из строк будет совпадать с любой частью абсолютного пути копируемого документа, то скопировать с помощью командной строки данный файл не получится.