View previous topic :: View next topic |
Author |
Message |
Yurbanizator

Joined: 13 Dec 2006 Posts: 26
|
(Separately) Posted: Sun Dec 09, 2012 19:07 Post subject: Скрипт для записи в HTML-файлы информации о файлах JPG |
|
|
Друзья, прошу помощи!
Сам в скриптах не силен, а очень нужен для работы скриптик для обработки файлов по следующему алгоритму.
1. Скрипт получает имя директории как параметр.
2. Проверяет директорию на на наличие в нем файлов jpeg
3. Если такие файлы есть переименовывает их по порядку 1.jpg, 2.jpg, 3.jpg и т.д. до последнего файла
4. Создает соответствующие файлы html в этой же директории 1.html, 2.html, 3.html и т.д. для каждого файла jpg
5. В html файлы записывает имя соответствующего файла jpg и его высоту и ширину.
6. Сообщает об удачном окончании операции и количестве обработанный файлов jpg
На скриншоте №1 слева - исходная директория, справа - после выполнения скрипта.
На скриншоте №2 - файл 1.html созданный скриптом.
Заранее спасибо!
! | Avada: | Замечание за нарушение правил форума. Неформатные картинки заменены ссылками. | |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Dec 10, 2012 21:01 Post subject: |
|
|
Code: | '================================================================
' Переименовать jpeg-файлы в активном каталоге на номер счётчика
' Создать рядом одноимённые html с записью размеров картинок
' Условие - путь запуска пустой
'================================================================
Dir = CreateObject("WScript.Shell").CurrentDirectory
Set Fd = CreateObject("Shell.Application").NameSpace(Dir) : Set Items = Fd.Items
Items.Filter 64, "*.jpg"
With CreateObject("Scripting.FileSystemObject")
If Items.Count > 0 Then
For Each F In .GetFolder(Dir).Files
Ext = LCase(.GetExtensionName(F))
If (Ext = "jpg" Or Ext = "jpeg") And Not IsNumeric(.GetBaseName(F)) Then
i = i + 1 : Do While .FileExists(i & "." & Ext) : i = i + 1 : Loop
.GetFile(F).Name = i & "." & Ext
Size = CStr(Fd.GetDetailsOf(Fd.ParseName(F.Name), 31))
x = InStr(Size, "x") : H = Left(Size, x - 2)
.OpenTextFile(i & ".html", 2, True, -1).Write _
"<h1> " & i & ".jpg </h1>" & vbNewLine & "height = <b> " & H &_
" </b> " & vbNewLine & "width = <b> " & Mid(Size, x + 2) & " </b>"
End If
Next
End If
End With : CreateObject("WScript.Shell").SendKeys "^R" |
P.S.: И название темы надо бы на нормальное поменять - обработкой изображений тут не пахнет.. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Sat Dec 15, 2012 20:48; edited 2 times in total |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Mon Dec 10, 2012 21:37 Post subject: |
|
|
Flasher
Замечание верное. Название темы поменял (там хотя бы частично нужный функционал сейчас отражён). _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
Yurbanizator

Joined: 13 Dec 2006 Posts: 26
|
(Separately) Posted: Mon Dec 10, 2012 22:28 Post subject: |
|
|
Кладу скрипт в папку с изображениями. Запускаю. Вылетает ошибка.
При этом первое изображение обрабатывает. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Dec 10, 2012 22:50 Post subject: |
|
|
Честно, сам в недоумении. Почему-то метод Write на 7-ке не хочет писать значения, возвращённые из стандартных функций.
В XP такого бреда нет.. Ещё подумаю.
Скрипт вешается элементарно на кнопку, в каждую папку с jpeg его класть не требуется. Тут обсуждаются скрипты для ТС.
Add: цифровые символы юникодные, оказывается.. Пишем html в Юникод, в общем. Поменял в скрипте. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Yurbanizator

Joined: 13 Dec 2006 Posts: 26
|
(Separately) Posted: Tue Dec 11, 2012 09:49 Post subject: |
|
|
Заработал из папки с изображениями, супер!
Flasher wrote: | Скрипт вешается элементарно на кнопку, в каждую папку с jpeg его класть не требуется. Тут обсуждаются скрипты для ТС. |
Да, это я прекрасно понимаю, мне он и нужен для ТС.
Повешал его на кнопку, параметр директории передаю "%P", не хочет работать. Может, что не так делаю?
Скрин http://joxi.ru/Z8xU9Ayq
Add: еще не ясен коммент в коде ' Условие - путь запуска пустой
Add2: Dir = CreateObject("WScript.Shell").CurrentDirectory - задает переменной Dir значение директории в которой лежит скрипт, поэтому он ищет изображения в своей директории... |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Dec 11, 2012 11:58 Post subject: |
|
|
Yurbanizator wrote: | Может, что не так делаю? | В условиях скрипта где-то написано про параметры? Нет.
Yurbanizator wrote: | еще не ясен коммент в коде ' Условие - путь запуска пустой | В кнопке/юзеркоманде такое поле есть. Впервые сталкиваемся?
Yurbanizator wrote: | задает переменной Dir значение директории в которой лежит скрипт | Нет. Возвращает указанный путь рабочей папки, если его нет, то считывает путь активного каталога.
На будущее: надо не экспериментировать, а следовать описанию шапки.. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Yurbanizator

Joined: 13 Dec 2006 Posts: 26
|
(Separately) Posted: Tue Dec 11, 2012 21:24 Post subject: |
|
|
Flasher
Гениально! все работает )
Спасибо. Сори за тупняк, впервые такое делаю. |
|
Back to top |
|
 |
berya
Joined: 15 Nov 2011 Posts: 46 Location: kiev
|
(Separately) Posted: Tue Dec 11, 2012 21:52 Post subject: |
|
|
Добрый вечер.
А как сделать чтобы в название включалось имя директории?
имеем aaa\xxx.jpg - получим aaa_01.jpg
Спасибо |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Dec 11, 2012 23:52 Post subject: |
|
|
Ни за что бы не подумал, что такой скрипт может ещё кому-то пригодиться..
А имена везде менять (jpg/html/в html) ? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
berya
Joined: 15 Nov 2011 Posts: 46 Location: kiev
|
(Separately) Posted: Wed Dec 12, 2012 00:14 Post subject: |
|
|
На самом деле мне это скрипт был бы очень нужен в более расширенном виде - запись списка файлов в один HTML файл. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 12, 2012 00:21 Post subject: |
|
|
berya
НЕ вижу связи со здешним скриптом. См. сюда. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
berya
Joined: 15 Nov 2011 Posts: 46 Location: kiev
|
(Separately) Posted: Wed Dec 12, 2012 00:24 Post subject: |
|
|
Связь: переименованием с последующей записью |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 12, 2012 00:34 Post subject: |
|
|
Т.е. переименовать список и записать его в один html? Коли так, то в любом случае оффтоп. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
berya
Joined: 15 Nov 2011 Posts: 46 Location: kiev
|
(Separately) Posted: Wed Dec 12, 2012 00:39 Post subject: |
|
|
переименовывать не список а JPG файлы. запись в один файл не критична, то есть оставляем исходный. Критично - имя файла по имени директории и нумерация должна быть минимум из 2 заков (01, 02, 03 ...) |
|
Back to top |
|
 |
|