Parazitif
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Доброго времени суток, всем! Признаюсь честно, не знаком с написанием скриптов и пока не времени разбираться, поэтому хотел бы попросить о помощи. Есть скрипт, написан не мною, но задача полностью подходит под мою: позволяет задать определенное "Особое свойство" для группы файлов. Код: Код: 'VBS Set objShellApp = CreateObject("Shell.Application") ' создаем объект оболочки Set FSO = CreateObject("Scripting.FileSystemObject") ' создаем объект файловой системы FileChangedCount = 0 ' Количество обработанных файлов Main ' Поиск файлов Sub Main '""""""""""""""""" Поиск файлов On error Resume Next ' Если файлы открыты приложением, будут пропущены Set OpenDialog = CreateObject("MSComDlg.CommonDialog") ' Microsoft Common Dialog Control With OpenDialog .DialogTitle = "Откройте нужный Вам файл(ы)" .InitDir = "C:\" .Filter = "Модели Solidworks (*.sldprt,*.sldasm)|*.sldprt;*.sldasm" ' Расширения файлов .FilterIndex = 1 .Flags = 2621952 .MaxFileSize =32000 .ShowOpen Filename = .Filename End With If (Len(OpenDialog.FileName)= 0) Then msgbox "Файлы не выбраны!" Exit Sub End If files = Split(OpenDialog.Filename, vbNullChar) count_files = UBound(files) If count_files > 0 Then path = files(0) + "\" ' в ХР работает этот вариант path = files(0), в W7 почему то в окончании \ отсутствует For i = 1 To count_files PropertySearch path + files(i) ' Если выбрано несколько файлов Next Else PropertySearch path + files(0) ' Если выбран один файл End If Msgbox "Выполнено." &chr(13)& "Количество обработанных файлов: "& FileChangedCount, vbInformation End Sub Sub PropertySearch (FilePath) '""""""""""""""""" поиск свойств файла 'msgbox "FilePath = " & FilePath Set Cprop = CreateObject("DSOFile.OleDocumentProperties") ' создаем объект подключения к свойствам файла Cprop.Open FilePath, false ' Открываем текущий файл IsHere = "" ' Наличие свойства Раздел СП, если останется "" то нету if Cprop.CustomProperties.count > 0 then ' Если у файла есть свойства for iprop=0 to Cprop.CustomProperties.count-1 ' цикл по свойствам if Cprop.CustomProperties.item(iprop).Name = "Раздел СП" then ' если Раздел СП есть IsHere = 1 ' делаем отметку Exit For End if Next End if If IsHere = "" then ' если Раздела СП нету AddCustomProperty Cprop ' назначение свойств для файла else AddCustomPropertyEx Cprop, iprop ' если есть End if Cprop.close ' закрываем файл End Sub Sub AddCustomProperty(Cprop) '""""""""""""""""" назначение свойств для файла key = "Раздел СП" ' Имя свойства valueForKey = "Прочие изделия" ' Значение свойства Cprop.CustomProperties.Add key, valueForKey ' Добавляем новое свойство с Cprop.Save ' Сохранить изменения FileChangedCount = FileChangedCount + 1 ' Инкрементация счетчика обработанных End Sub Sub AddCustomPropertyEx(Cprop,iprop) '""""""""""""""""" назначение свойств для файла valueForKey = "Прочие изделия" ' Значение свойства Cprop.CustomProperties.Item(iprop).value = valueForKey ' изменяем свойство Cprop.Save ' Сохранить изменения FileChangedCount = FileChangedCount + 1 ' Инкрементация счетчика обработанных End Sub '""""""""""""""""" Освобождаем память Set objShellApp = Nothing Set FSO = Nothing Set Cprop = Nothing Set OpenDialog = Nothing | Скрипт взят отсюда http://forum.oszone.net/thread-233561.html За него, конечно, премного благодарен человеку, написавшему и выложившему сей труд. Моя же проблема состоит в том, что установив указанный Microsoft Developer Support OLE File Property Reader 2.1 Sample и создав файл скрипта, на Windows XP всё запускается и работает нормально. На Windows 7, на котором и требуется работать, выдаёт только окно "Файлы не выбраны". В чём проблема? | Всего записей: 19 | Зарегистр. 17-06-2013 | Отправлено: 16:32 17-06-2013 | Исправлено: Parazitif, 19:27 17-06-2013 |
|