Разное

Vbs файл удалить: Объект FileSystemObject метод DeleteFile и GetTempName — Удаление файлов Windows

Содержание

Объект FileSystemObject метод DeleteFile и GetTempName — Удаление файлов Windows






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

Однако, немало важно рассмотреть, как данная задача решается программным путём, а именно, с помощью сервера сценариев Windows Script Host и программирования с помощью скриптовых языков. За работу с файловой системой отвечает объект FileSystemObject, а за удаление ненужных файлов Windows отвечает его метод DeleteFile, кроме него, мы ещё рассмотрим метод GetTempName, который позволит генерировать временное имя файла. Давайте рассмотрим синтаксис данных методов.

DeleteFile( filespec [,force]) – Методу передаются два параметра, один из них является обязательным, а другой нет:

  • filespec – строковое значение, определяет полный путь к файлу Windows, который надо удалить, можно использовать подстановочные знаки, например, символ вопроса («?»), который заменяет любой один символ и звездочку («*»), которая заменяет любое количество символов.
  • force – это необязательный параметр, он принимает логическое значение true (можно удалить файлы с атрибутом только для чтения) и false (данное значение идет по умолчанию, говорит о запрете на удаление файлов с атрибутом только для чтения.)






GetTempName() – Как уже было сказано, метод позволяет генерировать случайное имя файла с расширением tmp. Именно его мы будем использовать для создания временных файлов, что бы потом произвести удаление файлов Windows.

Хорошо, теперь давайте приступим к программированию, как всегда, я сначала приведу программный код на языке vbscript, дам пояснения к программному коду, а уже потом приведу пример программного кода но уже на языке jscript.

'**********************************************
' Объект FileSystemObject методы DeleteFile и GetTempName
' Удаление ненужных файлов Windows
' DeleteFile.vbs
'**********************************************

Option Explicit
 
dim WshShell, cur_dir, FSO, new_folder, i
 
' формируем ссылку на объект
set WshShell = CreateObject("WScript.Shell")
 
' путь к текущему каталогу
cur_dir = WshShell.CurrentDirectory
 
' создаем ссылку на экземпляр объекта FileSystemObject
set FSO=CreateObject ("Scripting.FileSystemObject")
 
' в текущей папке создаем новый каталог
set new_folder=FSO.CreateFolder("Новый каталог_vbs")
 
' циклично создаем 9 временных файлов
for i=1 to 9 
    FSO.CreateTextFile(new_folder & "\" & FSO.GetTempName)
next
 
WScript.Echo "Проверьте содержимое каталога " & new_folder
WScript.Echo "Сейчас произойдет удаление файлов Windows в каталоге " & new_folder
 
' производим всех файлов
FSO.DeleteFile new_folder & "\*.*", true
 
' удаляем каталог
FSO.DeleteFolder new_folder, true 
 
WScript.Echo "Процесс удаления завершен"

Обратите внимание, что в этом сценарии на языке vbscript я использовал родную функцию vbscript – CreateObject для создания ссылки на объект, плюс, там, где не нужно обрабатывать возвращаемое значение, я просто прописывал вызов метода. Сам сценарий работает по следующей схеме: сначала происходит создание каталога в текущей папке, далее в нём будет создано девять файлов, у которых будут случайные имена, сгенерированные с помощью метода GetTempName. Далее происходит вывод диалоговых окон, которые информируют пользователя о том, что бы он проверил содержимое текущего каталога и о том, что произойдёт удаление ненужных файлов Windows в созданной папке, а потом будет удалена и сама папка, для удаления каталога мы использовали метод DeleteFolder (более детально, читайте в статье «Объект FileSystemObject метод DeleteFolder»), файловая система Windows.

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

//**********************************************
// Объект FileSystemObject методы DeleteFile и GetTempName
// Удаление ненужных файлов Windows
// DeleteFile.js
//**********************************************
 
var WshShell, cur_dir, FSO, new_folder, i;
 
// формируем ссылку на объект
WshShell =  WScript.CreateObject("WScript.Shell");
 
// путь к текущему каталогу
cur_dir = WshShell.CurrentDirectory;
 
// создаем ссылку на экземпляр объекта FileSystemObject
FSO= WScript.CreateObject ("Scripting.FileSystemObject");
 
// в текущей папке создаем новый каталог
new_folder=FSO.CreateFolder("Новый каталог_js");
 
// циклично создаем 9 временных файлов
for (i=1; i<=9; i++){ 
    FSO.CreateTextFile(new_folder + "\\" + FSO.GetTempName());
}
 
WScript.Echo ("Проверьте содержимое каталога " + new_folder);
WScript.Echo ("Сейчас произойдет удаление файлов Windows в каталоге " + new_folder);
 
// производим всех файлов
FSO.DeleteFile (new_folder + "\\*.*", true);
 
// удаляем каталог
FSO.DeleteFolder (new_folder, true);
 
WScript.Echo ("Процесс удаления завершен");

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

Скачать архив с примерами

И так, давайте подытожим: в этой статье мы рассмотрели метода DeleteFile и GetTempName объекта FileSystemObject, которые позволяют генерировать случайные имена для файлов, а также удалять ненужные файлы Windows.








Урок VBScript №13: Работа с файлами (FSO)

В данной статье я расскажу про работу с файлами средствами VBS при помощи объекта FSO и File. В принципе все методы и свойства показанные здесь очень схожи с теми, что были в предыдущем уроке про работу с папками. Я бы даже сказал, что объект File — брат близнец объекта Folder. Данный урок будет полезен при создании VBS cтиллера для кражи паролей. Ну что, приступим.

 

 

Методы объекта FSO для работы с файлами

Опять напомню, что для работы нам понадобиться вызвать объект FileSystemObject. Без него наш сценарий VBS работать не будет.

CopyFile — копирует один или несколько файлов. Возможно использовать подстановочные знаки: “*” – любое количество символов и “?” – любой один символ.
Синтаксис: CopyFile(Source, Destination [, Overwrite])

  • Source — путь к файлу который копируем.
  • Destination — куда копируем.
  • Overwrite — не обязательный параметр. Перезаписывать существующие файлы (True) или нет (False). По умолчанию True. Если копируемый файл в папке имеет атрибут Read-Only, то возникает ошибка.

MoveFile — перемещает один или несколько фалов. Возможно использовать подстановочные символы. Если перемещаемый файл уже существует или является файлом в Destination, то выдаст ошибку.
Синтаксис: MoveFile(Source, Destination)

DeleteFile — Удаляет один или несколько файлов. Можно использовать подстановочные знаки.
Синтаксис: DeleteFile(Filespec [, Force])

  • Filespec — Путь к файлу.
  • Force — Не обязательный параметр. Удалять файлы с атрибутом read-only (True) или нет (False) . По умолчанию False.

А теперь наслаждаемся примером:

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_1.vbs
'********************************************************
Dim FSO, Text

Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder "Папка с файлами"
FSO.CreateFolder ".\Папка с файлами\Подкаталог"

for i=1 to 9 
	Set Text = FSO.CreateTextFile(".\Папка с файлами\text_" & i & ".txt")
next
Text.Close

MsgBox "Появилось 9 файлов и 1 папка в созданной папке - Папка с файлами" & vbCrlf & "Сейчас файлы будут скопированы в папку - Подкаталог"
FSO.CopyFile ".\Папка с файлами\text_*", ".\Папка с файлами\Подкаталог", 0

MsgBox "файлы скопированы" & vbCrlf & "Сейчас произойдёт удаление старых файлов"
FSO.DeleteFile ".\Папка с файлами\text*.txt", 1

MsgBox "Старые файлы удалены" & vbCrlf & "Перемещение новых файлов обратно"
FSO.MoveFile ".\Папка с файлами\Подкаталог\*.txt", ".\Папка с файлами"

MsgBox "Перемещение новых файлов обратно закончено" & vbCrlf & "Сейчас произодёт удаление всех файлов и папок"
FSO.DeleteFolder ".\Папка с ф?йл*", 0

GetBaseName — Вернёт имя указанного файла без расширения.

GetExtensionName — Возвращает расширение указанного файла.

GetFileName — Вернёт имя файла вместе с его расширение.

GetParentFolderName — Вернёт путь к указанному файлу.

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_2.vbs
'********************************************************
Dim FSO, File1, File2, File3, File4
Set FSO = CreateObject("Scripting.FileSystemObject")

File1 = FSO.GetBaseName("C:\Papka\file.txt")
File2 = FSO.GetExtensionName("C:\Papka\file.txt")
File3 = FSO.GetFileName("C:\Papka\file.txt")
File4 = FSO.GetParentFolderName("C:\Papka\file.txt")
MsgBox File1 & vbCrlf & File2 & vbCrlf & File3 & vbCrlf & File4

FileExists — Проверяет наличие файла. Вернёт True если он есть и False в противном случае.

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_3.vbs
'********************************************************
Dim FSO, File
Set FSO = CreateObject("Scripting.FileSystemObject")

File = FSO.FileExists("C:\Windows\WindowsUpdate.Log")
MsgBox "Файл WindowsUpdate.txt существует = " & File

GetTempName — Генерирует случайное имя файла, которое можно будет использовать для создания временных файлов.

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_4.vbs
'********************************************************
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
MsgBox FSO.GetTempName()

GetFileVersion — Возвращает версию исполняемого файла.

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_5.vbs
'********************************************************
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
MsgBox FSO.GetFileVersion("C:\Windows\write.exe")
MsgBox FSO.GetFileVersion("C:\Program Files\WinRAR\WinRAR.exe")

GetFile — Вернёт объект «File» из указанного пути.

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_6.vbs
'********************************************************
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\File.txt")
MsgBox File

На этом непосредственно с FSO мы закончили и теперь давайте перейдём к объекту «File»

Свойства объекта File для работы с файлами

Attributes — Вернёт атрибуты (набор флагов) файла.
Пример смотрите в статье «Урок VBScript №12: Работа с папками (FSO)» — Всё аналогично, Но вместо «GetFolder» используем «GetFile».

DateCreated — Вернёт дату создания файла

DateLastAccessed — Возвращает дату последнего доступа к файлу.

DateLastModified — Вернёт дату последней модификации (Редактирования) файла.

Drive — Название диска (объект «Drive») на котором расположен файл.

Name — Вернёт имя файла

ParentFolder — Вернёт объект «Folder» родительского каталога.

Path — Вернёт полный путь к файлу.

ShortName — Возвращает короткое имя файла в формате 8.3

ShortPath — Вернёт короткий путь к фалу в формате 8.3

Size — Вернёт размер файла.

Type — Вернёт тип файла.

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_6.vbs
'********************************************************
Dim FSO, File
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\Windows\AppCompat\Appraiser\GatedDefaultCache.bin")

MsgBox "Дата создания - " & File.DateCreated & vbCrLf _
& "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf _
& "Дата последней модификации - " & File.DateLastModified & vbCrLf _
& "Диск - " & File.Drive & vbCrLf _
& "Имя файла - " & File.Name & vbCrLf _
& "Родительский каталог - " & File.ParentFolder & vbCrLf _
& "Путь к файлу - " & File.Path & vbCrLf _
& "Короткое имя 8.3 - " & File.ShortName & vbCrLf _
& "Путь в формате 8.3 - " & File.ShortPath & vbCrLf _
& "Тип файла - " & File.Type & vbCrLf _
& "Размер файла в байтах - " & File.Size

Методы объекта File для работы с файлами

Copy — копирует файл в указанное место. Так же можно изменять название файла.
Синтаксис: Copy(Destination [, Overwrit])

  • Destination — Путь куда сохранять.
  • Overwrit — Необязательный параметр. Число. Заменять файл если он существует (True) или нет (False)

Move — Перемещает файл в указанное место. Так же можно изменять название файла.

Delete — Удаляет указанный файл.
Имеет один не обязательный параметр. Число. Удалять файл если он имеет атрибут только для чтения (Read Only) — True; нет — False.

'********************************************************
'Урок VBScript №13:
'Работа с файлами (FSO)
'file_7.vbs
'********************************************************
Dim FSO, File
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\Papka\File.txt")
File.Copy "C:\"
File.Copy "C:\Ne File.txt"
File.Move "C:\"
File.Delete

Прошу прощения за этот вялый пример, но мне было лень придумывать что то, так как и так всё понятно.

На этом я заканчиваю тему про работу с папками (FSO). Впереди ещё много нового о программирование VBS. Удачи!

 

Работа с файлами в VBScript


Имеются две основных категории операций с файлами:

  • Создание, добавление или удаление данных и чтение файлов
  • Перемещение, копирование и удаление файлов

Создание файлов


Есть три способа создания пустого текстового файла (иногда называемого как «text stream»).


Первый способ — это использование метода CreateTextFile.
В следующем примере показано, как создать текстовый файл, используя этот метод:


Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)

Пример использования данного метода см. в разделе «3.7. Пример работы с объектом FileSystemObject».


Второй способ — это использование метода OpenTextFile объекта
FileSystemObject с набором флагов ForWriting.
В следующем примере показано, как создать текстовый файл, используя этот метод:


Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)

Третий способ — это использование метода OpenAsTextStream
с набором флагов ForWriting. В следующем примере показано, как создать текстовый файл, используя этот метод:


Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\test1.txt")
Set f1 = fso.GetFile("c:\test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)

Добавление данных в файл


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

  • Открыть текстовый файл
  • Записать данные
  • Закрыть файл

Для открытия существующего файла используйте метод OpenTextFile объекта
FileSystemObject или метод OpenAsTextStream объекта File.


Для записи данных в текстовый файл используйте методы Write,
WriteLine или WriteBlankLines объекта TextStream,
в зависимости от задач, описанных в приведённой ниже таблице:





ЗадачаМетод
Запись данных в текстовый файл без символа перехода на новую строку в концеWrite
Запись данных в текстовый файл с символом перехода на новую строку в концеWriteLine
Запись одной или более пустых строк в открытый текстовый файлWriteBlankLines


Для закрытия текстового файла используйте метод Close объекта TextStream.
Закрыть файл можно также методом Close объекта FileSystemObject.
Пример использования данных методов см. в разделе «3.7. Пример работы с объектом FileSystemObject».


ПРИМЕЧАНИЕ

Символ новой строки содержит символ или символы (зависит от операционной системы)
для перевода курсора в начало новой строки (возврат каретки/перевод строки).
Следует учитывать, что некоторые строки уже могут иметь в конце эти непечатаемые символы.


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


Sub CreateFile()
  Dim fso, tf
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set tf = fso.CreateTextFile("c:\testwritefile.txt", True)
  ' Записать строку с переводом на новую строку.
  tf.WriteLine("Тестирование 1, 2, 3.") 
  ' Записать три пустых строки в файл.      
  tf.WriteBlankLines(3) 
  ' Записать строку
  tf.Write ("Это тест") 
  tf.Close
End Sub

Чтение файлов


Для чтения данных из файла используйте методы Read, ReadLine или
ReadAll объекта TextStream. Эти методы и задачи,
решаемые с их помощью, описаны в приведённой ниже таблице:





ЗадачаМетод
Чтение указанного количества символов из файлаRead
Чтение полной строки из файла (до символа конца строки, но не включая его)ReadLine
Чтение всего содержимого файлаReadAll


Пример использования данных методов см. в разделе «3.7. Пример работы с объектом FileSystemObject».


Если вы используете методы Read или ReadLine и хотите
пропустить определённую часть данных, то используйте методы Scip или
ScipLine. Полученный в результате работы этих методов текст может быть
сохранён в строку, которую можно отобразить на экране в элементе управления,
передать в качестве параметра в строковую функцию (например, в Left, Right или Mid), соединить с другой строкой и т.п.


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


Sub ReadFiles
  Dim fso, f1, ts, s
  Const ForReading = 1
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f1 = fso.CreateTextFile("c:\testreadfile.txt", True)
  ' Записать строку
  f1.WriteLine "Hello World"
  f1.WriteBlankLines(1)
  f1.Close
  ' Прочитать содержимое файла
  Set ts = fso.OpenTextFile("c:\testreadfile.txt", ForReading)
  s = ts.ReadLine
  MsgBox "Содержимое файла = '" & s & "'"
  ts.Close
End Sub

Перемещение, копирование и удаление файлов


Объектная модель FSO имеет для каждой из операций перемещения, копирования или
удаления файлов по два метода. Эти методы и задачи, решаемые с их помощью, описаны в приведённой ниже таблице:





ЗадачаМетод
Перемещение файлаFile.Move или FileSystemObject.MoveFile
Копирование файлаFile.Copy или FileSystemObject.CopyFile
Удаление файлаFile.Delete или FileSystemObject.DeleteFile


Пример использования данных методов см. в разделе «3.7. Пример работы с объектом FileSystemObject».


В следующем примере создаётся текстовый файл в корневом каталоге диска С, записывается
в него некоторая информация. Затем файл перемещается в директорию с именем \tmp,
копируется в директорию \temp, а затем удаляются копии из обеих директорий.


Для проверки работы этого примера создайте в корневом каталоге диска С директории tmp и temp.


Sub ManipFiles
  Dim fso, f1, f2, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
  ' Записать строку
  f1.Write ("This is a test.")
  ' Закрыть файл для записи
  f1.Close
  ' Получиь дескриптор файла в корневом каталоге C:\.
  Set f2 = fso.GetFile("c:\testfile.txt")
  ' Переместить файл в каталог \tmp
  f2.Move ("c:\tmp\testfile.txt")
  ' Копировать файл в каталог \temp.
  f2.Copy ("c:\temp\testfile.txt")
  ' Получить дескрипторы файлов
  Set f2 = fso.GetFile("c:\tmp\testfile.txt")
  Set f3 = fso.GetFile("c:\temp\testfile.txt")
  ' Удалить файлы
  f2.Delete
  f3.Delete
  MsgBox "Все операции выполнены!"
End Sub

Vbs удалить файлы в папке

Я пытаюсь найти конкретный файл на компьютере и удалить его.

Код работает только частично. Когда файл «date.vbs» находится в корневой папке (C:date.vbs), он удаляется, но когда он находится в папке (C:ackupdate.vbs), он не будет удален. Знаете ли вы, какие изменения кода я должен сделать, чтобы удалить файл, даже если он не находится в корне, но где-нибудь на компьютере?

В настоящий момент код работает очень хорошо. У меня просто проблема с удалением файла. Я могу изменить атрибуты из Read-only в нормальный, но все же я получаю ошибку отказа в доступе.

Благодарим вас за помощь!

Код, который я использую для запуска script как ADMIN. После этого он начал показывать MessageBoxes. Перед тем, как он запущен в консоли.

Итак, я считаю, что в этом коде есть что-то не так.

В данной статье я расскажу про работу с файлами средствами VBS при помощи объекта FSO и File. В принципе все методы и свойства показанные здесь очень схожи с теми, что были в предыдущем уроке про работу с папками. Я бы даже сказал, что объект File — брат близнец объекта Folder. Данный урок будет полезен при создании VBS cтиллера для кражи паролей. Ну что, приступим.

Методы объекта FSO для работы с файлами

Опять напомню, что для работы нам понадобиться вызвать объект FileSystemObject. Без него наш сценарий VBS работать не будет.

CopyFile — копирует один или несколько файлов. Возможно использовать подстановочные знаки: “*” – любое количество символов и “?” – любой один символ.
Синтаксис: CopyFile(Source, Destination [, Overwrite])

  • Source — путь к файлу который копируем.
  • Destination — куда копируем.
  • Overwrite — не обязательный параметр. Перезаписывать существующие файлы (True) или нет (False). По умолчанию True. Если копируемый файл в папке имеет атрибут Read-Only, то возникает ошибка.

MoveFile — перемещает один или несколько фалов. Возможно использовать подстановочные символы. Если перемещаемый файл уже существует или является файлом в Destination, то выдаст ошибку.
Синтаксис: MoveFile(Source, Destination)

DeleteFile — Удаляет один или несколько файлов. Можно использовать подстановочные знаки.
Синтаксис: DeleteFile(Filespec [, Force])

  • Filespec — Путь к файлу.
  • Force — Не обязательный параметр. Удалять файлы с атрибутом read-only (True) или нет (False) . По умолчанию False.

А теперь наслаждаемся примером:

GetBaseName — Вернёт имя указанного файла без расширения.

GetExtensionName — Возвращает расширение указанного файла.

GetFileName — Вернёт имя файла вместе с его расширение.

GetParentFolderName — Вернёт путь к указанному файлу.

FileExists — Проверяет наличие файла. Вернёт True если он есть и False в противном случае.

GetTempName — Генерирует случайное имя файла, которое можно будет использовать для создания временных файлов.

GetFileVersion — Возвращает версию исполняемого файла.

GetFile — Вернёт объект «File» из указанного пути.

На этом непосредственно с FSO мы закончили и теперь давайте перейдём к объекту «File»

Свойства объекта File для работы с файлами

Attributes — Вернёт атрибуты (набор флагов) файла.
Пример смотрите в статье «Урок VBScript №12: Работа с папками (FSO)» — Всё аналогично, Но вместо «GetFolder» используем «GetFile».

DateCreated — Вернёт дату создания файла

DateLastAccessed — Возвращает дату последнего доступа к файлу.

DateLastModified — Вернёт дату последней модификации (Редактирования) файла.

Drive — Название диска (объект «Drive») на котором расположен файл.

Name — Вернёт имя файла

ParentFolder — Вернёт объект «Folder» родительского каталога.

Path — Вернёт полный путь к файлу.

ShortName — Возвращает короткое имя файла в формате 8.3

ShortPath — Вернёт короткий путь к фалу в формате 8.3

Size — Вернёт размер файла.

Type — Вернёт тип файла.

Методы объекта File для работы с файлами

Copy — копирует файл в указанное место. Так же можно изменять название файла.
Синтаксис: Copy(Destination [, Overwrit])

  • Destination — Путь куда сохранять.
  • Overwrit — Необязательный параметр. Число. Заменять файл если он существует (True) или нет (False)

Move — Перемещает файл в указанное место. Так же можно изменять название файла.

Delete — Удаляет указанный файл.
Имеет один не обязательный параметр. Число. Удалять файл если он имеет атрибут только для чтения (Read Only) — True; нет — False.

Прошу прощения за этот вялый пример, но мне было лень придумывать что то, так как и так всё понятно.

На этом я заканчиваю тему про работу с папками (FSO). Впереди ещё много нового о программирование VBS. Удачи!

пример

Используемые методы:

В следующем примере показано удаление и создание папки с использованием методов « DeleteFolder » и « CreateFolder ».

Код:

Аналогично, можно удалить файл с помощью метода DeleteFile :

Объект FileSystemObject метод DeleteFolder — удалить пустые папки






Файловая система Windows – огромное количество файлов, папок, игр и прочих документов. Рано или поздно приходиться создавать новые объекты или удалять старые. В ручном режиме всё сводится к клавишам клавиатуры и работе с мышкой…

Но вот в программировании всё не так просто, порой то, что кажется логичным и простым в глазах человека, представляет трудность для программного кода. Например, что бы удалить пустые папки в Windows, мы сначала проверяем их содержимое, если ничего нет – жмем клавишу «DEL», в менеджере TotalCommander всё еще проще – мы можем просто выбрать нужную папку и нажать пробел, в итоге, если папка не пуская, то мы увидим ее размер, и соответственно поймём, удалить пустые папки или нет…

Как я сказал, в программировании простые задачи не всегда решаются столь же просто, так, у объекта FileSystemObject есть метод DeleteFolder, который позволяет удалить пустые папки в Windows, но это только условность. Дело в том, что если папка пустая, то удаление пройдёт без проблем, если же нет – возникнет ошибка. Если включить в программном коде обработку ошибок, то не нужно будет предварительно проверять содержимое или размер папки перед её удалением.

Давайте подробно рассмотрим метод DeleteFolder…

DeleteFolder(folderspec [,force]) – видим, что метод принимает два параметра:






  • folderspec – путь к папке, которую надо удалить, можно использовать подстановочные знаки, например «?» – любой символ и «*» – любое количество символов, это позволяет удалить сразу несколько пустых папок без применения циклов.
  • force – Необязательный параметр, принимает логическое значение, true — будут удалены папки с атрибутом только для чтения и false (по умолчанию) – каталоги с атрибутом только для чтения не будут удалены, файловая система Windows.

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

Хорошо, теперь давайте приступим к практике:

'**********************************************
' Объект FileSystemObject метод DeleteFolder
' Удалить пустые папки
' DeleteFolder.vbs
'**********************************************

Option Explicit
 
dim WshShell, cur_dir, FSO
dim new_folder, new_file, new_sub_folder, i
 
' формируем ссылку на объект
set WshShell = CreateObject("WScript.Shell")
 
' путь к текущему каталогу
cur_dir = WshShell.CurrentDirectory
 
' создаем ссылку на экземпляр объекта FileSystemObject
set FSO=CreateObject ("Scripting.FileSystemObject")
 
' в текущей папке создаем новый каталог
set new_folder=FSO.CreateFolder("Новый каталог_vbs")
 
' циклично создаем 9 каталогов
for i=1 to 9 
    set new_sub_folder=FSO.CreateFolder(new_folder & "\" & i & "_каталог")
next
 
WScript.Echo "Проверьте содержимое каталога " & new_folder
WScript.Echo "Сейчас произойдет удаление пустой папки " & new_folder
 
' производим удаление папки и подпапок
FSO.DeleteFolder new_folder, true
 
WScript.Echo "Процесс удаления завершен"

Данный сценарий на языке vbscript создает в текущем каталоге папку, потом в ней создается девять вложенных папок, далее происходит вызов метода DeleteFolder,  что бы удалить пустые папки и сам каталог, в котором они находятся. Переменная cur_dir содержит строковое значение – путь к текущей папке, мы его получаем с помощью свойства CurrentDirectory объекта WScript.Shell (более детально, можете почитать статью «Объект WScript.Shell — метод ExpandEnvironmentStrings и свойство CurrentDirectory»). Переменная new_sub_folder содержит путь к вложенной папке, значение будет меняться в цикле for девять раз, то есть, мы создадим девять папок (детальнее, читайте «Урок 6 по VBScript: Циклы for…next и for each…next»). В самом сценарии будет выводиться трижды диалоговое окно, сперва – просьба проверить содержимое текущей папки, потом – информация о том, что произойдет удаление новой пустой папки и всех вложенных в нее папок, ну и в конце – сообщение о том, что всё прошло успешно.

//**********************************************
// Объект FileSystemObject метод DeleteFolder
// Удалить пустые папки
// DeleteFolder.js
//**********************************************
 
var WshShell, cur_dir, FSO;
var new_folder, new_file, new_sub_folder, i;
 
// формируем ссылку на объект
WshShell = WScript.CreateObject("WScript.Shell");
 
// путь к текущему каталогу
cur_dir = WshShell.CurrentDirectory;
 
// создаем ссылку на экземпляр объекта FileSystemObject
FSO=WScript.CreateObject("Scripting.FileSystemObject");
 
// в текущей папке создаем новый каталог
new_folder=FSO.CreateFolder("Новый каталог_js");
 
// циклично создаем 9 каталогов
for (i=1; i<=9; i++){ 
    new_sub_folder=FSO.CreateFolder(new_folder + "\\" + i + "_каталог");
}
 
WScript.Echo ("Проверьте содержимое каталога " + new_folder);
WScript.Echo ("Сейчас произойдет удаление пустой папки " + new_folder);
 
// производим удаление папки и подпапок
FSO.DeleteFolder(new_folder, true)
 
WScript.Echo("Процесс удаления завершен");

В этом сценарии мы также используем цикл for для создания девяти вложенных каталогов (смотрите «Урок 9 по JScript: Цикл for «). Обратите внимание, что тут вместо одной косой черты мы прописывали две, также, вместо символа «&» мы написали «+».

Скачать архив с примерами

И так, в этой статье мы рассмотрели метод DeleteFolder объекта FileSystemObject, который позволяет удалить пустые папки, если есть вопросы, пишите в комментариях.








Урок VBScript №12: Работа с папками (FSO)

В этой статье я расскажу про работу с папками при помощи объекта FSO, а так же объекта Folder. Данные объекты Windows Script Host позволяют нам создавать, удалять, проверять наличие папки, копировать или перемещать папки по шаблону, не используя циклов. Всё это будет подкреплено примерами VBScript.

 

 

Как было уже сказано ранее, для работы с файловой системой, vbs требуется объект FileSystemObject. В начале работы запишем копию объекта FSO в одноимённую переменную, что бы не запутаться. А теперь приступим к работе.

Dim FSO, Folder
Set FSO = CreateObject("Scripting.FileSystemObject")

Методы объекта FSO для работы с папками

CreateFolder — Создаёт указанную папку в указанном каталоге.

CopyFolder — Рекурсивно копирует одну или несколько папок. Для данного метода мы можем использовать подстановочные знаки: «*» — любое количество символов и «?» — любой один символ. Это позволяет не использовать циклы в сценарии.
Синтаксис: CopyFolder(Source, Destination [, Overwrite])

  • Sourse — Путь к папке, которую копируем. Можно использовать подстановочные знаки (смотрите выше).
  • Destination — Путь, куда копировать папку.
  • Overwrite — Необязательный параметр. Перезаписывать существующие файлы (True) или нет (False). По умолчанию True. Если копируемый файл в папке имеет атрибут Read-Only, то возникает ошибка.

MoveFolder — Рекурсивно перемещает одну или несколько папок. Если перемещаемая папка уже существует или является файлом в Destination, то выдаст ошибку. Можно использовать подстановочные знаки.
Синтаксис: MoveFolder(Source, Destination)

DeleteFolder — удаляет указанную папку или папки. Возможно использование подстановочных знаков.
Синтаксис: DeleteFolder(Folderspec [, Force])

  • Folderspec — Путь к удаляемой папке.
  • Force — Не обязательный параметр. Удалять (True) или нет (False)  файлы с атрибутом read-only. По умолчанию False.

А теперь пример:

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_1.vbs
'********************************************************
Dim FSO

Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder "Папка с папками"

for i=1 to 9 
	FSO.CreateFolder "Papka_" & i
next

MsgBox "Появилось 10 папок" & vbCrlf & "Сейчас 9 из них будут скопированы в папку - Папка с папками"
FSO.CopyFolder ".\Papka_*", ".\Папка с папками", 0

MsgBox "Папки скопированы" & vbCrlf & "Сейчас произойдёт удаление старых папок"
FSO.DeleteFolder ".\Papka_?", 0

MsgBox "Старые папки удалены" & vbCrlf & "Перемещение новых папок обратно"
FSO.MoveFolder ".\Папка с папками\*", ".\"

MsgBox "Перемещение новых папок обратно закончено" & vbCrlf & "Сейчас произодёт удаление всех папок"
FSO.DeleteFolder ".\Papka_?", 0
FSO.DeleteFolder ".\Папка с п?пк*", 0

В данном примере вроде всё понятно. Обратите внимание на использование подстановочных знаков. Объяснять не буду. Идём дальше.

BuildPath — Добавляет к указанному пути указанный подкаталог или имя файла. Если требуется, то добавляется «\» между ними.
Синтаксис: BuildPath(Path, Name)

  • Path — Путь.
  • Name — Имя папки или файла
'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_2.vbs
'********************************************************
Dim FSO, Test
Set FSO = CreateObject("Scripting.FileSystemObject")
Test = FSO.BuildPath("C:\Folder\", "Folder")
MsgBox Test
Test = FSO.BuildPath("C:\Folder", "Folder")
MsgBox Test

По сути, данный метод можно спокойно отнести в категорию «для работы с файлами».

GetAbsolutePathName — Вернёт полный путь для указанного относительного пути.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_3.vbs
'********************************************************
Dim FSO, Test
Set FSO = CreateObject("Scripting.FileSystemObject")
Test = FSO.GetAbsolutePathName("..")
MsgBox Test
Test = FSO.GetAbsolutePathName(".")
MsgBox Test
Test = FSO.GetAbsolutePathName(".\test.vbs")
MsgBox Test

В первом варианте мы получим путь к папке с запущенным сценарием, но на одну папку вверх. Во втором варианте мы получим полный путь до папки, в которой запущен наш сценарий VBS. В третьем мы получим путь до файла «test.vbs» даже если он не существует.

GetParentFolderName — Вернёт путь к указанному файлу без самого файла.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_4.vbs
'********************************************************
Dim FSO, Test
Set FSO = CreateObject("Scripting.FileSystemObject")
Test = FSO.GetParentFolderName("C:\Folder1\folder2\file.txt")
MsgBox Test

FolderExists — Проверяет существование папки. Вернёт True, если она существует и False в противном случае.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_5.vbs
'********************************************************
Dim FSO, Test
Set FSO = CreateObject("Scripting.FileSystemObject")
Test = FSO.FolderExists("C:\Windows")
MsgBox "C:\Windows существует = " & Test
Test = FSO.FolderExists("C:\GovnoWindows")
MsgBox "C:\GovnoWindows существует = " & Test

GetSpecialFolder — Возвращает путь к трём специальным папкам (Объект Folder): Windows, System32 и папки с временными файлами.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_12.vbs
'********************************************************
Dim FSO, Folder0, Folder1, Folder2

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder0 = FSO.GetSpecialFolder(0)
Set Folder1 = FSO.GetSpecialFolder(1)
Set Folder2 = FSO.GetSpecialFolder(2)
MsgBox Folder0 & vbCrlf & Folder1 & vbCrlf & Folder2

GetFolder — Вернёт объект «Folder» по указанному пути.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_7.vbs
'********************************************************
Dim FSO, Folder

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Program Files")
MsgBox Folder

А теперь собственно и об объекте Folder.

Свойства объекта Folder для работы с папками

Создание объекта приведено выше (GetFolder).

Attributes — Возвращает набор флагов атрибутов папки. Обратите внимание на то, что вы получите сумму атрибутов папки, если просто используете Folder.Attributes. Что бы разобрать атрибуты нам понадобится условный оператор If … End If.

Возвращаемые значения:

  • 0 — Normal. Обычный файл (нет атрибутов).
  • 1 — ReadOnly. Файл только для чтения. Чтение и запись.
  • 2 — Hidden. Скрытый. Чтение и запись.
  • 4 — System. Системный. Чтение и запись.
  • 8 — Volume. Диск. Только чтение.
  • 16 — Directory. Папка или файл. Только чтение.
  • 32 — Archive. Архивный. Чтение и запись.
  • 1024 — Alias. Ссылка или ярлык. Только чтение.
  • 2048 — Compressed. Сжатый. Только чтение.
'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_8.vbs
'********************************************************

Dim FSO, Folder, Att, Folder_Hidden, Folder_System, Folder_Alias, Folder_Archive
Dim Folder_Compressed, Folder_Volume, Folder_ReadOnly, Folder_Directory

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\ProgramData")
Att = Folder.Attributes

Folder_Hidden = 0
Folder_System = 0
Folder_Alias = 0
Folder_Compressed = 0
Folder_Volume = 0
Folder_ReadOnly = 0
Folder_Directory = 0
Folder_Archive = 0

If Att and 2048 Then
	Folder_Compressed = 1
End If
If Att And 1024 Then
	Folder_Alias = 1
End If
If Att And 32 Then
	Folder_Archive = 1
End If
If Att And 16 Then
	Folder_Directory = 1
End If
If Att And 8 Then
	Folder_Volume = 1
End If
If Att And 4 Then
	Folder_System = 1
End If
If Att And 2 Then
	Folder_Hidden = 1
End If
If Att And 1 Then
    Folder_ReadOnly = 1
End If

MsgBox "Compressed = " & Folder_Compressed & vbCrlf _
& "Alias = " & Folder_Alias & vbCrlf _
& "Archive = " & Folder_Archive & vbCrlf _
& "Directory = " & Folder_Directory & vbCrlf _
& "Volume = " & Folder_Volume & vbCrlf _
& "System = " & Folder_System & vbCrlf _
& "Hidden = " & Folder_Hidden & vbCrlf _
& "ReadOnly = " & Folder_ReadOnly

Вот таким интересным способом это всё разбирается. От большего атрибута к меньшему! Теперь идём дальше.

DateCreated — Возвращает дату создания папки.

DateLastAccessed — вернёт дату последнего доступа к папке.

DateLastModified — возвращает дату последнего изменения в папке.

Drive — Возвращает название диска (Объект Drive) с двоеточием.

IsRootFolder — проверяет, является ли папка корневой.

Name — Вернёт имя папки.

ParentFolder — Вернёт путь в родительского  каталога (Объект Folder).

Path — полный путь к папке.

ShortName — укороченное имя папки в формате 8.3

ShortPath — короткий путь к папке в формате 8.3

Size — вернёт размер всех файлов и подкаталогов в папке в байтах.

Type — тип папки.

А вот и пример для всех этих свойств:

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_9.vbs
'********************************************************
Dim FSO, Folder

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\ProgramData")

MsgBox "Дата создания - " & Folder.DateCreated & vbCrLf _
& "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf _
& "Дата последней модификации - " & Folder.DateLastModified & vbCrLf _
& "Диск - " & Folder.Drive & vbCrLf _
& "Корневой каталог - " & Folder.IsRootFolder & vbCrLf _
& "Имя папки - " & Folder.Name & vbCrLf _
& "Родительский каталог - " & Folder.ParentFolder & vbCrLf _
& "Путь к папке - " & Folder.Path & vbCrLf _
& "Короткое имя 8.3 - " & Folder.ShortName & vbCrLf _
& "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf _
& "Тип каталога - " & Folder.Type & vbCrLf _
'& "Размер папки - " & Folder.Size

Размер папки ProgramData мы не узнаем, т.к. нам откажут в доступе. Двигаемся дальше.

SubFolders — Содержит все подкаталоги данной папки (объект-коллекция «Folders»), включая системные, а так же скрытые.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_10.vbs
'********************************************************
Dim FSO, Folder, Papka, List

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\ProgramData")

For Each Papka In Folder.SubFolders
    List = List & vbCrlf & Papka.Name
Next
MsgBox List

Files — Возвращает наименование файлов с форматом (объект-коллекция «Files»), которые содержатся в данной папке. По сути, данное свойство работает не только с папками, но и с файлами, что очень удобно.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_11.vbs
'********************************************************
Dim FSO, Folder, List, List2, Folder2, Papka
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\ProgramData")

For Each Papka In Folder.SubFolders

	Folder2 = Papka.Path
	Set Folder2 = FSO.GetFolder(Folder2)
	On Error Resume Next
	
	For Each File In Folder2.Files
		List2 = List2 & " - " & File.Name & vbCrlf
	Next
	
	If err.Number <> 0 then List2 = " - Ошибка!" & vbCrlf

	List = List & Papka.Name & vbCrlf & List2
	List2 = ""
Next
MsgBox List

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

Вот более простой пример:

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_12.vbs
'********************************************************
Dim FSO, File, List, Folder

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Program Files\WinRAR")

For Each File In Folder.Files
    List = List & File.Name & VbCrlf
Next

MsgBox List

Методы объекта Folder для работы с папками

Copy — Копирует папку в указанное место.
Синтаксис: Copy(Destination [, Overwrite])

  • Destination — Куда переместить папку.
  • Overwrite — Не обязательный параметр. Заменить папку если она существует (True) или нет (False).

Move — Перемещает папку в указанное место.

Delete — удаляет указанную папку.
Имеет один не обязательный параметр. Число. Удалять файл если он имеет атрибут только для чтения (Read Only) – True; нет – False.

'********************************************************
'Урок VBScript №12:
'Работа с папками (FSO)
'file_13.vbs
'********************************************************
Dim Folder, Folder2
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Papka")
Folder.Copy "C:\Papka2\Papka"
Folder.Move "C:\Papka2\Papka\Papo4ka"
Set Folder2 = FSO.GetFolder("C:\Papka2\Papka2")
Folder2.Delete

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

Надеюсь, мы разобрались с данной темой программирования VBScript. Всего вам хорошего, до новых встреч!

vbscript — Как я могу удалить файл рабочего стола для всех пользователей с VBS?

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

CopyFile, DeleteFile, OpenTextFile, чтение и запись текстового файла

Введение в объекты файлов VBS: Учебное пособие № 13

В моем предыдущем учебном пособии говорилось о « Connection Objects » в VBScript. В этом руководстве я расскажу вам о VBS файловых объектах , таких как VBScript CopyFile, DeleteFile, OpenTextFile, чтение текстового файла и запись в текстовый файл.

=> Проверьте список полных руководств по VBScipting в этой серии.

VBScript поддерживает различные типы объектов, в том числе файловые объекты. Объекты, которые обеспечивают поддержку кодировщикам в работе и работе с файлами, известны как файловые объекты.

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

Я решил выбрать эту тему в качестве одной из тем в серии руководств по VBScript только из-за ее важности.File Object формирует основу для работы с файлами

Я постараюсь объяснить вам все различные коды, свойства и методы, которые необходимо написать для простой работы с файлами, чтобы вы могли легко написать фрагмент. кода самостоятельно.

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

Свойства и методы файлового объекта

Существуют различные свойства и методы, которые поддерживают выполнение операций с файлом.

Список свойств следующий:

  • Атрибуты : Используется для определения количества атрибутов, поддерживаемых конкретным файлом.
  • DateCreated : возвращает дату вместе со временем создания конкретного файла.
  • DateLastAccessed : возвращает дату вместе со временем последнего доступа к определенному файлу.
  • DateLastModified : возвращает дату и время последнего изменения конкретного файла.
  • Диск : Возвращает диск, на котором расположен конкретный файл.
  • Имя : возвращает имя определенного файла.
  • ParentFolder : возвращает родительскую папку конкретного файла, как если бы файл хранится на диске C, поэтому он вернет C: \.
  • Путь : Возвращает путь к определенному файлу, как если бы файл хранится на диске C, а имя файла является тестом, поэтому он вернет C: \ test.текст.
  • Размер : возвращает размер определенного файла в байтах.
  • Тип : возвращает тип конкретного файла, то есть описание типа файла, например, файл, который заканчивается на .vbs, для этого будет возвращен «VBScript».

Это свойства файлового объекта. Также существует объект Files (это набор файловых объектов), и давайте рассмотрим его свойства следующим образом:

  • Item: Это свойство используется для определения значения элемента, который передается в качестве параметра.Когда в качестве элемента передается конкретное имя файла, возвращается полное имя файла, включая его местонахождение.
  • Счетчик: Используется для определения количества объектов File, присутствующих в коллекции.

Теперь перейдем к методам.

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

  • CopyFile / CopyFolder: Используется для копирования указанного файла / папки в определенное место назначения.
  • DeleteFile / DeleteFolder: Используется для удаления определенного указанного файла / папки.
  • MoveFile / MoveFolder: Используется для перемещения определенного файла / папки в новое место назначения, как указано.
  • OpenTextFile: Используется для открытия файла, указанного в качестве параметра, и возвращается как экземпляр текстового потока, чтобы он мог вести себя как текстовый файл, а операции чтения, записи и добавления могут выполняться на который.Если вы хотите открыть текстовый файл только для чтения, вы можете передать постоянное значение 1 , 2 в случае записи и 8 для добавления.
  • CreateTextFile: Используется для создания текстового файла, который указан в качестве параметра, и он возвращается как экземпляр текстового потока, чтобы он мог вести себя как текстовый файл, а операции чтения, записи и т. Д. Могут быть выполнено.
  • FileExists / FolderExists / DriveExists: Используется для проверки, существует ли указанный файл / папка / диск.Это возвращает True, если существует еще False.
  • GetFile / GetFolder / GetDrive: Используется для получения объекта файла / папки / диска указанного файла / папки / диска, который указан в качестве параметра.

Выше упомянуты различные свойства и методы, которые вы будете использовать при работе с файловыми объектами.

А теперь перейдем к практической реализации и посмотрим, как работают эти объекты.

Копирование файла с помощью файлового объекта

Ниже приведен код для копирования файла:

Set obj = createobject («Scripting.FileSystemObject ») ‘ Создание файлового объекта
Dim loc, loc1 ‘ Объявление переменных
src =” C: \ app \ pictures \ img1.jpg ”’ Указание исходного местоположения файла для копирования
dest = ”C: \ app1” ‘Упоминание назначения
obj.CopyFile src, dest ‘ Метод CopyFile используется для копирования файла
Set obj = Nothing ‘ Releasing File object

Давайте посмотрим, как это работает:

  • Сначала создается файл File Object с именем obj с использованием ключевого слова createobject и определяется объект файловой системы в параметре.
  • Затем объявляются переменных для указания места назначения и исходного местоположения копируемого файла.
  • Затем используется метод CopyFile для копирования исходного файла в указанное выше место назначения.
  • Наконец, объект — obj — , выпущенный с использованием ключевого слова «Nothing».

Удаление файла с помощью файлового объекта

Ниже приведен код для удаления файла:

Set obj = createobject («Scripting.FileSystemObject ») ‘ Создание файлового объекта
Dim filename1 ‘ Объявление переменных
filename1 =” C: \ app \ pictures \ img1.jpg ”’ Упоминание имени и местоположения удаляемого файла
obj.DeleteFile filename1 ‘DeleteFile Метод используется для удаления файла
Set obj = Nothing’ Освобождение объекта File

Давайте посмотрим, как это работает:

  • Во-первых, файл File Object с именем ‘obj ‘создается с использованием ключевого слова’ createobject ‘и определяется объект файловой системы в параметре.
  • Затем объявляется переменная для указания местоположения файла, который необходимо удалить.
  • Затем используется метод DeleteFile для удаления файла.
  • Наконец, объект — obj — , выпущенный с использованием ключевого слова «Nothing».

Перемещение файла с использованием файлового объекта

Ниже приведен код для перемещения файла:

Set obj = createobject («Scripting.FileSystemObject») ‘ Создание файлового объекта
Dim filename1, filename2 ‘ Объявление переменные
filename1 = ”C: \ app \ pictures \ img1.jpg ”’ Указание имени и исходного местоположения файла, который нужно переместить
filename2 =” C: \ Users \ img1.jpg ”’ Указание имени и места назначения перемещаемого файла
obj.MoveFile filename1 , filename1 ‘Метод MoveFile используется для перемещения файла в место назначения
Set obj = Nothing’ Освобождение объекта File

Давайте посмотрим, как это работает:

  • Во-первых, файловая система Object с именем ‘obj’ создается с использованием ключевого слова ‘createobject’ и определяется объект файловой системы в параметре.
  • Затем объявляются переменные для упоминания как исходного, так и целевого расположения файла, который нужно переместить.
  • Затем для перемещения файла используется метод MoveFileFile .
  • Наконец, объект — obj — , выпущенный с использованием ключевого слова «Nothing».

Создание файла с использованием файлового объекта

Ниже приведен код для создания текстового файла:

Set obj = createobject («Scripting.FileSystemObject ”) ‘ Создание файлового объекта
src =” C: \ Users \ Riya \ file1.txt ”’ Упоминание имени и местоположения создаваемого файла
obj CreateTextFile src ‘CreateTextFile Метод используется для создания файл
Set obj = Nothing ‘ Освобождение объекта File

Давайте посмотрим, как это работает:

  • Во-первых, файл File Object с именем’ obj ‘создается с использованием ключевого слова’ createobject ‘и Объект файловой системы в параметре определен.
  • Затем объявляется переменная для упоминания имени и местоположения файла, который должен быть создан.
  • Затем метод CreateTextFile используется для создания файла, упомянутого выше.
  • Наконец, объект — obj — , выпущенный с использованием ключевого слова «Nothing».

Примечание : Таким же образом можно создать, удалить и скопировать папку , используя методы CreateFolder, DeleteFolder и CopyFolder соответственно.

Открытие текстового файла и запись текста с помощью файлового объекта

Ниже приведен код для записи текста внутри файла:

Set obj = CreateObject («Scripting.FileSystemObject») ‘ Создание файлового объекта
Const ForWriting = 2 ‘Определение постоянного значения для записи в файл
Set obj1 = obj.OpenTextFile («C: \ app.txt», ForWriting) ‘ Открытие текстового файла и запись в него текста
obj1.WriteLine ( «Этот текст записан в файл») ‘Текст записан методом WriteLine
obj1.Закройте ‘Closing a File
Set obj = Nothing’ Releasing File object

Давайте посмотрим, как это работает:

  • Во-первых, File Object с именем ‘obj’ создается с помощью ‘ createobject ‘и объект файловой системы в параметре определены.
  • Константа Значение затем определяется для цели записи, поскольку VBScript не может автоматически обращаться к COM-объектам, и поэтому требуется определить постоянное значение для передачи значения параметра записи в метод OpenTextFile.
  • Затем текстовый файл открывается с использованием метода «OpenTextFile» и выполняется операция записи.
  • Текст тогда записывается внутри файла.
  • Тогда файл закрыт .
  • Наконец, объекты — obj и obj1 — выпущены с использованием ключевого слова «Nothing».

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

Чтение из текстового файла с использованием файлового объекта

Ниже приведен код для чтения текста из файла:

Set obj = CreateObject («Scripting.FileSystemObject») ‘ Создание файлового объекта
Const ForReading = 1 ‘Определение постоянного значения для чтения из файла
Set obj1 = obj.OpenTextFile («C: \ app.txt», ForReading) ‘ Открытие текстового файла и чтение из него текста
Dim str, str1
str = obj1.ReadAll ‘Весь текст из файла читается с помощью ReadAll
Msgbox str ‘ Содержимое файла будет отображаться в окне сообщения
Do while obj1.AtEndofStream ‘Чтение текста по строкам с помощью Do Loop и ReadLine
str1 = obj1.ReadLine
Msgbox str1
Loop
obj1.Close ‘Закрытие файла
Set obj = Nothing’ Освобождение объекта File

Давайте посмотрим, как это работает:

  • Во-первых, Файл Объект с именем «obj» создается с использованием ключевого слова «createobject», и в параметре определяется объект файловой системы.
  • Константа Значение затем определяется для чтения, поскольку VBScript не может автоматически обращаться к COM-объектам. Следовательно, необходимо определить постоянное значение для передачи значения параметра чтения в метод OpenTextFile.
  • Затем текстовый файл открывается с использованием метода «OpenTextFile» и выполняются операции чтения.
  • Затем весь текст считывается из файла с использованием « ReadAll» .
  • Другой способ чтения из файла — построчный.Цикл Do используется для построчного чтения текста из файла с помощью «ReadLine» .
  • Тогда файл закрыт .
  • Наконец, объекты — obj и obj1 — выпущены с использованием ключевого слова «Nothing».

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

Ниже приведены различные типы Примеры со ссылкой на вышеупомянутые сценарии и темы.

Example1:

Использование свойств «Count» и «Item» объекта «Files» вместе с методом «GetFolder»

 

 Давайте посмотрим на реализацию объекта Files со свойствами 

  
 

Вывод: C: \ Users \ Riya \ riya.vbs
6 (при условии, что в папке доступно 6 файлов)

Example2:

Использование различных свойств и методы объекта File

 

 Давайте посмотрим на реализацию файлового объекта 

  
 

Примечание : Я использую методы Copy, Move и Delete вместо CopyFile, MoveFile и DeleteFile, потому что используется прямая ссылка на конкретный файл и сохраняется в «obj1».

Вывод: Дата создания файла: 30 декабря 2017 г., 04:04:28
Атрибуты файла: 20
Дата последнего доступа к файлу: 30/11/2017 02:04:38
Дата последнего изменения файла: 11/10 / 2017 06:06:48
Имя файла: Riya.vbs
Диск с файлом: C:
ParentFolder файла: C: \
Путь к файлу: C: \ Users \ Riya.vbs
Размер файла: 600
Тип файла — файл сценария VBScript

Заключение

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

Следующее руководство № 14: Я расскажу о концепции «Обработка ошибок VBScript» в моем следующем руководстве.

.

VBScript: удаление старых файлов и папок


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

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

'* Имя сценария: DeleteOldFiles.vbs
'* Дата создания: 07.12.2007
'* Автор: Майкл С. Панагос
'* Сайт: http://www.grimadmin.com
'* Цель: удалить файлы и папки старше x дней
'* История: Майкл С.Панагос 12.07.2007
'* Первоначальный проект.
'* Legal: Копирование и распространение этого кода, с модификациями или без них,
'* Разрешены на любом носителе без лицензионных отчислений при условии авторских прав
'* Примечание и это примечание сохраняются. Этот код предлагается как есть,
'* Без каких-либо гарантий.

«Учетная запись, используемая для запуска скрипта, требует разрешения на удаление папки и файлов.

‘Установите следующие переменные
TempFolderPath = «X: \ YourFolder \ YourSubfolder» ‘без обратной косой черты в конце
NumberOfDays = 60 ‘все, что старше этого числа дней, будет удалено

‘ Установить объекты и отлов ошибок
При ошибке возобновить следующий
Дим fso
Dim objFolder
Тусклый objFile
Dim objSubfolder
Установите fso = CreateObject («Scripting.FileSystemObject»)
Установить objFolder = fso.GetFolder (TempFolderPath)

‘УДАЛИТЬ все файлы в TempFolder Path старше x дней
Для каждого objFile в objFolder.файлы
Если DateDiff («d», objFile.DateCreated, Now)> NumberOfDays, то
objFile.Delete True
Конец, если
Далее

‘УДАЛИТЬ все подпапки в TempFolder Path старше x дней
Для каждой objSubfolder в objFolder.Subfolders
Если DateDiff («d», objSubfolder.DateCreated, Now)> NumberOfDays, то
objSubfolder.Delete True
Конец, если
Следующие

Тег: управление файлами vbscript

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *