Vbs копирование текста из файла в файл

Обновлено: 05.07.2024

В свойстве Files объекта Folder , соответствующего определенному каталогу, хранится коллекция находящихся в этом каталоге файлов (объектов File ). В листинге 6.7 приведен сценарии ListFiles.vbs, выводящий на экран названия всех файлов, которые содержатся в специальной папке Мои документы.

Листинг 6.7. Построение списка файлов в каталоге (JScript)
Создание каталога

Создать новый каталог на диске можно либо с помощью метода CreateFolder объекта FileSystemObject , либо с помощью метода Add коллекции Folders . Оба эти метода используются в сценарии MakeFolder.vbs для создания в каталоге C:\Program Files подкаталогов Новая папка и Еще одна новая папка (листинг 6.8).

Создание текстового файла

Для создания текстового файла используется метод CreateTextFile объекта FileSystemObject , который имеет один обязательный текстовый параметр (путь к создаваемому файлу) и два необязательных логических параметра ( Overwrite и Unicode ).

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

Параметр Unicode указывает, в каком формате (ASCII или Unicode) следует создавать файл. Если Unicode равно True , то файл создается в формате Unicode, если же Unicode равно False или этот параметр вообще не указан, то файл создается в режиме ASCII.

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

Листинг 6.9. Создание временного файла со случайным именем (VBScript)
Операции чтения и записи строк для текстового файла

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

  • CreateTextFile объектов FileSystemObject и Folder;
  • OpenTextFile объекта FileSystemObject;
  • OpenAsTextStream объекта File.

Перечисленные ранее методы позволяют открывать файл в разных режимах ввода/вывода (за это отвечает параметр Iomode ) с использованием разных форматов (в соответствии со значением параметра Format ) (см. табл. 6.2, 6.3)

В листинге 6.10 приведен сценарий TextFile.vbs, в котором создается файл test1.txt и в него записываются строка текста. После этого файл открывается для чтения, строка считывается из него и выводится на экран.

Листинг 6.10. Запись информации в текстовый файл и чтение из него (VBScript)
Копирование и перемещение файлов и каталогов

Для копирования файлов/каталогов можно применять метод CopyFile/CopyFolder объекта FileSystemObject или метод Copy соответствующего этому файлу/каталогу объекта File/Folder . Перемещаются файлы/каталоги с помощью методов MoveFile/MoveFolder объекта FileSystemObject или метода Move соответствующего этому файлу/каталогу объекта File/Folder .

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

В листингах 6.11 и 6.12 приведен сценарий CopyFile.vbs, иллюстрирующий использование метода Copy. В этом сценарии на диске C создается файл TestFile.txt, который затем копируется на рабочий стол.

Листинг 6.11. Создание текстового файла и копирование его в другой каталог (VBScript)
Удаление файлов и каталогов

Для удаления файлов/каталогов можно применять метод DeleteFile/DeleteFolder объекта FileSystemObject или метод Delete соответствующего этому файлу/каталогу объекта File/Folder . Отметим, что при удалении каталога неважно, является ли он пустым или нет — удаление будет произведено в любом случае. Если же заданный для удаления файл/каталог не будет найден, то возникнет ошибка.

Работа с текстовыми файлами по-прежнему актуальна. Эта небольшая заметка для того, чтобы быстро вспомнить как записать или прочитать текстовый файл на VBScript.

Чтение текстового файла на VBScript

Первый способ

Воспользоваться OpenTextFile. Например, прочитаем файл test.txt

OpenTextFile(filename [,iomode [,create [,format]]])

filename - имя файла который необходимо прочитать

iomode - режим открытия файла (1 - только чтение, 2 - для записи (если уже существует, будет перезаписан), 8 - для добавления)

create - true - создать файл, если он не существует, false - не создавать

format - кодировка (-2 - кодировка ОС по умолчанию, -1 - Unicode, 0 - ASCII)

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

  • Read - чтение определенного количества символов независимо от конца строки (количество символов указывается в скобках после оператора)
  • ReadLine - прочитать строку полностью до конца (до символов перевода строки), т.е. построчное чтение текстового файла
  • ReadAll - прочитать весь файл целиком за раз, включая символы переноса строки.

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

Второй способ

Использовать GetFile и OpenAsTextStream. Принцип чтения такой же как и в первом способе, просто другой вариант открытия файла.

В скобках оператору OpenAsTextStream передается режим открытия файла iomode, который описан выше. Так же можно передать второй параметр, который будет означать кодировку format.

Запись текстового файла на VBScript

Создать и записать текстовый файл можно использовав один из трех операторов:

Пример использования CreateTextFile

Второй параметр указывает перезаписать или нет файл, если он существует. Так же можно добавить 3-й параметр, который будет означать кодировку (True - Unicode и False - ASCII)

Пример использования OpenTextFile

Здесь использован режим записи 8, т.е. добавление в существующий файл дополнительных строк, при этом, если файла не существует, он будет создан, т.к. третий параметр True.

Пример использования OpenAsTextStream

Здесь мы создаем файл и записываем в него текст. Если файл уже существовал, он будет перезаписан.

Так же как и с чтением файла, есть несколько вариантов какие операторы использовать для записи:

  • Write - записать текст в файл без символов перевода строки
  • WriteLine - записать текст в файл и добавить символы перевода строки (построчная запись в файл)
  • WriteBlankLines - записать в файл указанное количество пустых строк

Думаю, предложенных способов вполне достаточно для чтения / записи текстовых файлов. Пожелания и замечания оставляйте в комментариях ниже.

Считывание определённых строк текста из xml файла и копирование их в новый txt файл
Здравствуйте! Подскажите, пожалуйста, CMD-скрипт для считывания определённых строк текста из.

Считывание определённых строк текста из xml файла и копирование их в новый txt файл
Здравствуйте! Подскажите, пожалуйста, PowerShell-скрипт для считывания определённых строк текста из.

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

Дан текстовый файл A.TXT. Сформировать новый файл из строк файла A.TXT, содержащих слово RUN
Дан текстовый файл A.TXT. Сформировать новый файл из строк файла A.TXT, содержащих слово RUN.

FlasherX, Большое спасибо! А есть ли вариант считывать xml-файл в директории не по имени файла, а по его расширению? Vova_ne, битте зер. Вариант, конечно, есть. Вопрос только в количестве. FlasherX, в количестве одного файла, но без привязки к имени файла.


Копирование определенных строк с одного .txt на другой *.txt
Ребзи помогите пожалуйста. Задача такая, есть текстовой файл с множ-во строк. Нужно вытащить оттуда.

Копирование текста из doc-файла в txt-файл
как с помощью бат файла скопировать текст с файла (.doc) в другой файл (.txt) и наоборот, если так.

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

Выборка определённых строк из файла .txt
Добрый вечер, столкнулся с учебной задачей которую не понимаю как реализовать. Суть в том что код.

Копирование данных из одного файла txt в другой файл txt
Помогите, пожалуйста, создать bat файл, который бы из одного документа, например, 1.txt копировал.


Считывание текста с файла .txt
Как считать со строки сначала текст, а потом числа? Например: Triangle x1 y1 x2 y2 x3 y3 где.

Копирует один или несколько файлов из одного расположения в другое.

Синтаксис

объект. CopyFile источник, назначения, [ переписать ]

Синтаксис метода CopyFile содержит следующие элементы:

Part Описание
object Обязательный. Объект всегда является именем FileSystemObject.
source Обязательный. Спецификация файла строки символов, которая может содержать подстановочные знаки (для одного или нескольких копируемых файлов).
destination Обязательный. Символьное строковое обозначение конечного расположения, в которое необходимо скопировать файл или файлы из элемента source. Использование подстановочных знаков не допускается.
переописывание Необязательное. Логическое значение, которое указывает, требуется ли перезапись существующих файлов. Если установлено значение True, файлы будут перезаписаны; если задано значение False, перезапись не выполняется. По умолчанию используется значение True. Необходимо учитывать, что функция CopyFile не выполняется, если для элемента destination установлено свойство "только чтение", независимо от значения элемента overwrite.

Примечания

Подстановочные знаки могут использоваться только в последнем компоненте пути аргумента source. Например, можно использовать:

Однако нельзя использовать:

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

Если элемент destination не существует, выполняется копирование элемента source. Это типичный случай.

Если элемент destination представляет собой существующий файл, возникает ошибка, если элементу overwrite присвоено значение False. В противном случае выполняется попытка копирования элемента source в существующий файл.

Если destination является каталогом, происходит ошибка.

Ошибка также возникает в том случае, если элемент source, который использует подстановочные знаки, не соответствует ни одному из файлов. Выполнение метода CopyFile останавливается при обнаружении первой ошибки. До возникновения ошибки попыток отката или отмены каких-либо изменений не выполняется.

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

См. также

Поддержка и обратная связь

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

Читайте также: