1

Тема: VBS: проверить существование файла

Коллеги не могу решить в сущности простую проблему. Необходимо на VBS проверить существование файла. Использование
Set File = FSO.GetFile("c:/my_file.txt")
If FSO.FileExists(File) Then...
не работает с  подстановочными символами.
Но в моём случае имя файла генерится другой программой добавляя к названию порядковый номер... типа my_file01.txt , my_file02.txt и.т.д.
Заранее благодарю за дельный совет..

2

Re: VBS: проверить существование файла

set shell=createobject("shell.Application")
set f=shell.NameSpace("c:\")
set i=f.items
i.Filter 192,"*.txt"
for each c in i
    with new RegExp
        .pattern=".*\\my_file([0-9]{2})\.txt$"
        if .test(c.path) then
            msgbox c.path
            exit for
        end if
    end with
next
Я конечно далек от мысли... (с)

3

Re: VBS: проверить существование файла

Кстати - СИЛЬНО !!!

Времени не хватает... :-(

4

Re: VBS: проверить существование файла

Отлично...огромный респект. Правда я не до конца понял работу с регулярными выражениями, но будет над чем поработать.И у меня такой ещё вопрос. В скрипте вы работаете с объектом FolderItems. Используя метод Filter вы задаёте флаг 192. Что он обозначает? Не могу найти список флагов на MSDN. Если кинете ссылочку буду признателен.

5

Re: VBS: проверить существование файла

' Enum SHCONTF
Const SHCONTF_FOLDERS             = &H0020 ' only want folders enumerated (SFGAO_FOLDER)
Const SHCONTF_NONFOLDERS          = &H0040 ' include non folders
Const SHCONTF_INCLUDEHIDDEN       = &H0080 ' show items normally hidden
Const SHCONTF_INIT_ON_FIRST_NEXT  = &H0100 ' allow EnumObject() to return before validating enum
Const SHCONTF_NETPRINTERSRCH      = &H0200 ' hint that client is looking for printers
Const SHCONTF_SHAREABLE           = &H0400 ' hint that client is looking sharable resources (remote shares)
Const SHCONTF_STORAGE             = &H0800 ' include all items with accessible storage and their ancestors

Другие константы доступны в Vista и/или выше: SHCONTF Enumeration (Windows)