Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Проверка существования файла (http://forum.oszone.net/showthread.php?t=187741)

admin-nsk 08-10-2010 07:56 1514070

Проверка существования файла
 
Здравствуйте.
В общем ситуация такая, нужно перед копирование проверить существование файла. Нюанс в том что известна только часть имени файла. шаблон BPK81_backup_2010_10_08_???????.bak
Как можно это реализовать в vbs?

megaloman 08-10-2010 12:43 1514231

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 1517727

Не работатет, ошибки не выдает но и файл не видит.

megaloman 13-10-2010 12:25 1517833

Вложений: 1
Проверено, работает, а если ничего не выдаёт, значит файлы с именами, соответствующими маске, не существуют(м б Вы неправильно описали маску в регулярном выражении). Я правильно понял, что в вашей маске ??????? обозначают 7 символов? Попробуйте вместо
If Re.Test(File.Name) Then MsgBox File.Name
поставить
MsgBox File.Name
и убедитесь, что скрипт просматривает все файлы в указанной папке.
Прикрепляю файл, в котором приведена смесь файлов, среди которых есть соответствующие маске. Там же и текст скрипта


Время: 17:10.

Время: 17:10.
© OSzone.net 2001-