Показать полную графическую версию : Проверка существования файла
admin-nsk
08-10-2010, 07:56
Здравствуйте.
В общем ситуация такая, нужно перед копирование проверить существование файла. Нюанс в том что известна только часть имени файла. шаблон BPK81_backup_2010_10_08_???????.bak
Как можно это реализовать в vbs?
megaloman
08-10-2010, 12:43
vbs
' Проверка существования файлов в директории по маске
' Исходные данные ------------------------------------------------
iDir = "I:\Всякая дребедень" ' Директория где смотрим
Maska = "^BPK81_backup_2010_10_08_.......\.bak$" ' Маска файлов
' ------------------------------------------------------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Files = FSO.GetFolder(iDir).Files
Set Re = New RegExp
Re.Pattern = Maska
Re.IgnoreCase = True
For Each File In Files
If Re.Test(File.Name) Then MsgBox File.Name ' Если файл по маске найден, выдаём сообщение
Next
' Копировать файлы по маске
' Исходные данные ------------------------------------------------
iDir = "I:\Всякая дребедень" ' Директория где смотрим
oDir = "I:\Delete" ' Директория куда копируем
Maska = "BPK81_backup_2010_10_08_???????.bak" ' Шаблон файлов
' ------------------------------------------------------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile iDir + "\" + Maska, oDir, True
admin-nsk
13-10-2010, 10:02
Не работатет, ошибки не выдает но и файл не видит.
megaloman
13-10-2010, 12:25
Проверено, работает, а если ничего не выдаёт, значит файлы с именами, соответствующими маске, не существуют(м б Вы неправильно описали маску в регулярном выражении). Я правильно понял, что в вашей маске ??????? обозначают 7 символов? Попробуйте вместо
If Re.Test(File.Name) Then MsgBox File.Name
поставить
MsgBox File.Name
и убедитесь, что скрипт просматривает все файлы в указанной папке.
Прикрепляю файл, в котором приведена смесь файлов, среди которых есть соответствующие маске. Там же и текст скрипта
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.