Доброго дня всем читателям блога scriptcoding.ru. В этой статье мы научимся программировать, а также рассмотрим, как копировать файлы в Windows программным путём и вручную…
По сути, сначала мы рассмотрим, как копировать файлы на диск в Windows ручным методом с помощью комбинаций клавиш и мышки, потом рассмотрим метод объекта FileSystemObject – CopyFile, который позволяет программным путём копировать файлы на диск или в указанную директорию, а потом начнём программировать.
И так, как копировать вручную файлы на диск? Да всё предельно просто, в зависимости от того, сколько нам нужно копировать файлов, мы можем выделить мышью один или несколько документов, а потом перетянуть их в другую папку или диск, предварительно удерживая клавишу «Ctrl«, отпускаем левую кнопку мыши и всё, файлы скопированы. Второй способ – использование комбинации клавиш, снова выбираем нужные документы, нажимаем комбинацию «Ctrl + C«, потом открываем нужную папку или диск и нажимаем комбинацию «Ctrl + V«. Стоит помнить тот момент, что если мы попытаемся копировать файлы и вставить в одно и то же место (скопировали на диске "С" и туда же хотим снова вставить), то ошибки не произойдёт, система автоматически переименует вставляемые файлы, чтобы не возник конфликт имён.
Как копировать файлы на диск
CopyFile(source, destination [,overwrite]) – как видим методу передаются три параметра, при этом, последний не является обязательным.
- source – данный параметр принимает строковое значение и указывает полный путь к файлу, который нужно скопировать, можно использовать подстановочные знаки: «?» – любой один символ и «*» – любое количество символов.
- destination – опять таки, полный путь, куда будет скопирован файл, при чём, можно указать новое имя и расширение.
- overwrite – если параметр установлен в логическое значение true – будет происходить замена, false – не производить замены (по умолчанию).
Хорошо, с теорией разобрались, теперь можно приступить к программированию. Для начала рассмотрим программный код на языке vbscript:
'********************************************** ' Объект filesystemobject метод copyfile ' Как копировать файлы на диск ' copyfile.vbs '********************************************** Option Explicit dim fso, new_folder ' создаем ссылку на объект Scripting.FileSystemObject set fso=CreateObject ("Scripting.FileSystemObject") ' создаем в текущей папке новый каталог set new_folder=fso.CreateFolder("Новая папка_vbs") ' копируем текущий сценарий в новую папку под новым именем fso.CopyFile WScript.ScriptFullName, new_folder & "\тест_vbs.txt" , true WScript.Echo "Процесс копирования завершен" |
Давайте рассмотрим всё по пунктам. Сам сценарий производит создание папки «Новая папка_vbs» в текущем каталоге, для этого мы используем метод CreateFolder, после происходит копирование текущего файла (сценария) в созданную папку (метод CopyFolder класса FileSystemObject).
dim fso, new_folder – тут мы объявили переменные, fso – хранит ссылку на объект FileSystemObject, new_folder – хранит путь к новому каталогу.
set WshShell = CreateObject("Scripting.FileSystemObject ") – тут мы создаем ссылку на экземпляр объекта Wscript.Shell, тут мы используем стандартную функцию языка vbscript для создания ссылки на класс – CreateObject, также, как видим, фигурирует ключевое слово set. Объект нужен для использования метода CopyFile.
set new_folder=fso.CreateFolder("Новая папка_vbs") – тут происходит создание новой папки «Новая папка_vbs» с помощью метода CreateFolder, более детально, роботу данного метода я описал в статье «FileSystemObject метод CreateFolder«. Как копировать файл на диск.
fso.CopyFile WScript.ScriptFullName, new_folder & "тест_vbs.txt" , true – в данной строке мы производим процесс копирования текущего сценария в новый каталог, но уже под именем тест_vbs.txt. WScript.ScriptFullName содержит строку, которая определяет полный путь к текущему сценарию.
WScript.Echo "Процесс копирования завершен" – собственно, в самом конце мы выводим сообщение о завершении копирования.
Стоит обратить внимание, что я не включал проверку ошибок.
Хорошо, теперь давайте рассмотрим аналогичный пример, но уже на языке jscript:
//********************************************** // Объект filesystemobject метод copyfile // Как копировать файлы на диск // copyfile.js //********************************************** var fso, new_folder; // создаем ссылку на объект Scripting.FileSystemObject fso=WScript.CreateObject ("Scripting.FileSystemObject"); // создаем в текущей папке новый каталог new_folder=fso.CreateFolder("Новая папка_js"); // копируем текущий сценарий в новую папку под новым именем fso.CopyFile (WScript.ScriptFullName, new_folder + "\\тест_js.txt" , true); WScript.Echo ("Процесс копирования завершен"); |
Тут я сделал некоторые изменения: изменил имя новой папки, имя конечного файла, в результате, произойдёт создание в текущей папке каталога «Новая папка_js», и копирование в нее текущего сценария, в итоге мы получим текстовый документ «тест_js.txt».
И так, в этой статье мы рассмотрели, как копировать файлы на диск с помощью метода CopyFile класса FileSystemObject. Для реализации поставленной задачи мы программировали на языке vbscript и jscript.