|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Добавить (изменить) "свойства" файла на вкладке "Особые" |
|
VBS/WSH/JS - [решено] Добавить (изменить) "свойства" файла на вкладке "Особые"
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Добрый день.
Есть такая задача: Есть папка, в ней лежат файлы SolidWorks - модели сборок и деталей. Необходимо для каждой модели добавить свойство: Имя свойства "Раздел СП", тип данных "Строка", значение "Прочие изделия"(для примера, назначается в зависимости от...). Без открытия документа приложением можно зайти в свойства файла и на вкладке особые добавить необходимую информацию. Но для каждого отдельного документа повторять эти действия устанет рука Вопрос следующий - есть ли возможность осуществлять запись таких свойств с помощью объектов Windows Script Host? Сталкивался кто-нибудь с подобной задачей ? Выбрать папку и осуществить в ней перебор файлов проблем не составляет, но вот обращение к этим свойствам файла... |
|
Отправлено: 16:44, 26-04-2012 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Всем еще раз добрый день.
Вопрос удалось решить, хотя немного изменилось задание. Скрипт работает следующим образом: пользователь выбирает файл(ы) для назначения предопределенного свойства. Для работы необходимы: Microsoft Developer Support OLE File Property Reader 2.1 Sample - для обращения к "особым свойствам" файла, а так же лицензирование класса MSComDlg.CommonDialog (нашел тут http://forum.ru-board.com/topic.cgi?...1491&start=124 ) - для возможности выбора файлов через проводник windows Вот пример кода, если кому-нибудь поможет в будущем, буду рад. '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 |
Отправлено: 11:35, 23-05-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - В меню "сервис" "свойства папки" не могу настроить скрытые файлы | Antoni106 | Microsoft Windows 2000/XP | 1 | 15-12-2009 21:32 | |
[решено] ошибка при отображении "свойства системы"-"общие" | Dz_mikael | Проект WinStyle | 5 | 28-07-2009 20:46 | |
VBS/WSH/JS - [решено] Как добавить "сложное" значение в "бинарный" параметр реестра с помощью WSH | 13Demon | Скриптовые языки администрирования Windows | 1 | 10-02-2009 09:47 | |
Интерфейс - [решено] Пропала строка "Свойства папки" из выпадающего меню "Сервис" панели задач | Стальное сердце | Microsoft Windows 2000/XP | 1 | 28-09-2007 11:26 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|