Страница 1 из 16

Script Content Plugin

Добавлено: Пт окт 07, 2005 16:25
Lev
Script Content Plugin
Позволяет самому писать vbs и js скрипты для получения и обработки информации из файла или для обработки его имени и помещения результата в колонку плагина. Может быть полезен для получения полезной информации из файла или для сортировки файлов в желаемом порядке

Сам плагин очень сырой, но, тем не менее...

Задаем вопросы и обмениваемся скриптами
Параллельная англоязычная тема

Добавлено: Сб май 13, 2006 13:28
Batya
Было бы неплохо не копировать плагин для нескольких результатов, а сделать у одного плагина несколько результатов (колонок).
Например, это можно реализовать, если в script.ini в разделе [Script] переменную Section задавать в виде:

Код: Выделить всё

[Script]
Section=Defaults|Extension|AddZeros|exe-arc up|js
А результат работы скрипта давал бы не одну колонку Result, а несколько колонок, названных по имени секции.

Добавлено: Сб май 13, 2006 16:50
funduk
Имхо это будет удобнее, но всё равно нельзя сделать количество полей потенциально неограниченным. Пяти имхо достаточно.

Добавлено: Сб май 13, 2006 17:23
Batya
Ну нет!
5 - это крайне мало. 50 - вот это наш размерчик :)

Добавлено: Пн май 15, 2006 15:23
Lev
Ух, ты! Тема ожила, я думал и оно и ненужно никому :)

Итого:
в ToDo листе
выводить из одного скрипта не одну колонку, а несколько - result1, result2... (планировал 10 шт.)
включение в скрипт подпрограмм (Sub, Function)
каждый скрипт в свою колонку - не хочется
НО: я не запускал дельфи уже пол-года и не знаю когда ещё запущу :(

PS - секция Defaults - информационная, ни на что не влияющая, в Script.ini её можно не включать

Добавлено: Пн май 15, 2006 15:41
Batya
Ура, автор присутствует :)
Что ж, надеемся, что хорошее начинание не будет "почить в бозе".

Тут еще LocKtaR-o-DarK заметил, что память не очищается. В частности, после работы поиска вот с этис скриптом.

Добавлено: Пн май 15, 2006 15:52
Lev
Тут вам не повезло, автор - ленивый script kiddy :(
посмотреть попробую, обещать ничего не могу

зы. и именовать колонку из плагина, я тоже пока не умею

Добавлено: Пн май 15, 2006 16:26
Batya
Lev
Жаль :(

В свою очередь могу постараться почаще прибегать к помощи твоего плагина и почаще выкладывать какие-нибудь скрипты под него.
Прояви, пожалуйста (ну пожааалуйста :)), немного активности, и, глядишь, плагин заживет активной жизнью! К моим скриптам народ, видимо, уже привык :). Настала пора приучить теперь к твоему плагину :D

Добавлено: Пн май 15, 2006 17:36
Lev
Могу, для начала, перезапостить сюда интересные скрипты с оф. форума. Автор большинства скриптов van Dusen.

Добавлено: Пн май 15, 2006 18:27
Batya
ОК.
Выкладывай, только переведи описание.

Приведу еще одну ссылку на использование твоего плагина.
Еще я когда-то приводил скрипт, показывающий 16-тиричное значение первого символа файла. Но позже уже увидел, что аналогичный скрипт есть на оф. форуме. Поэтому свою ссылку искать не буду. Приведи скрипт с оф. форума.

Добавлено: Вт май 16, 2006 00:23
Lev
Ну, начнём потихоньку :)

ricobautsch

Небольшой скрипт, который может быть полезен для поиска файлов с определенной сигнатурой (первые байты в файле).

Код: Выделить всё

'signatur.vbs by ricobautsch 

'Script for Script Content Plugin (c)Lev Freidin, 2005 
'http://www.totalcmd.net/plugring/script_wdx.html 
'http://wincmd.ru/plugring/script_wdx.html 
' 
'Этот скрипт показывает первые 10 байт файла в тектовом или hex представлении
'может быть полезен для поиска файлов с определенной сигнатурой
'This script returns the first 10 bytes in the file as text or hex-representation. 
'Could be usefull for example to search for files with a specified signatur 

const bHex = True 
const nCharCnt = 10 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set oTextStream = fso.OpenTextFile(filename) 

If not oTextStream.AtEndOfStream Then 
  content_str = oTextStream.Read(nCharCnt) 
  
  If bHex Then 
    For i=1 To Len(content_str) 
      If content <> "" Then 
        content = content & " " 
      End If 
      
      hex_value = Hex(Asc(Mid(content_str,i,1))) 
      
      content = content & string(2 - len(hex_value), "0") 
      content = content & hex_value 
    Next 
  Else 
    content = content_str 
  End If 
End If 

oTextStream.Close 
Для установки количества отображаемых байт/букв и переключения режимов отображения меняйте константы bHex и nCharCnt

Добавлено: Вт май 16, 2006 00:27
Lev
Найти и пометить файлы с одинаковыми именами
Исходное сообщение - http://www.ghisler.ch/board/viewtopic.php?t=8844

Peter

В списке есть исходные данные (например: 1.doc, 2.do3, 3.doc, 4.doc) и их производные (1.pdf, 2.pdf, 3.pdf, 5.pdf).

Требуется выполнить несколько задач:

a) Найти все doc-файлы, к которым нет соответствующего pdf (напр. 4.doc)
b) Найти все pdf-файлы, к которым нет соответствующего doc (напр. 5.pdf)
c) Найти все pdf-файлы старее, чем исходный doc, и соответственно устаревшие
----
van Dusen

Код: Выделить всё

'Script for Script content Plugin 
' van Dusen
' (c)Lev Freidin, 2005 
' http://www.totalcmd.net/plugring/script_wdx.html 
' http://wincmd.ru/plugring/script_wdx.html 

Dim fso, f1, f2 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set f1 = fso.GetFile(filename) 

sBaseIst = lcase(fso.GetBaseName(filename)) 
sExtIst = lcase(fso.GetExtensionName(filename)) 
sDateModF1 = f1.DateLastModified 
sExtSoll1 = "doc" 
sExtSoll2 = "pdf" 
Const ForReading = 1 


SELECT Case sExtIst 

   Case sExtSoll1 
      sResult = sExtSoll2 & " - сответствующий файл" 
      If fso.FileExists(sBaseIst & "." & sExtSoll2) Then 
         Set f2 = fso.GetFile(sBaseIst & "." & sExtSoll2) 
         sTimeDiff = DateDiff("n", sDateModF1, f2.DateLastModified) 
         If sTimeDiff < 0 Then 
            sResult = "2: " & sResult & " устарел"
         Else 
            sResult = "1: " & sResult & " свежий"
         End If 
         sResult = sResult & " (" & sTimeDiff & " Min. Diff.)" 
      Else 
         sResult = "3: " & sResult & " отсутствует" 
      End If 

   Case sExtSoll2      
      If fso.FileExists(sBaseIst & "." & sExtSoll1) Then 
         Set f2 = fso.GetFile(sBaseIst & "." & sExtSoll1) 
         sTimeDiff = DateDiff("n", sDateModF1, f2.DateLastModified) 
         If sTimeDiff > = 0 Then 
            sResult = "2: Файл устарел" 
         Else 
            sResult = "1: Свежий файл" 
         End If 
         sResult = sResult & " ("& sTimeDiff & " Min. Diff.)" 
      Else 
         sResult = "3: "& sExtSoll1 &" - соответствующий файл отсутствует" 
      End If 

   Case Else 
      sResult = "" 

End SELECT 

content = sResult 

Set fso=nothing 
Set f1=nothing 
Set f2=nothing
Лично мне разница во времени не понадобилась, я натравливал скрипт на папку с кучей jpg фоток и соответствующими им обтравленными tif'ами, понравилось :)

Добавлено: Ср май 17, 2006 21:34
Lev
Относительный путь к файлу
Для использования в режиме BranchView (Ctrl+B), для работы требуется TCScript.Helper
В обсуждении на оф. форуме были и другие варианты

Код: Выделить всё

'relpath.vbs - Show relative path to file in the Branch view (Ctrl+B)
'Script for Script Content Plugin (c)Lev Freidin, 2005 
'http://www.totalcmd.net/plugring/script_wdx.html 
'http://wincmd.ru/plugring/script_wdx.html
Dim fso, f, tcs

Set fso = CreateObject("Scripting.FileSystemObject")
Set tcs = CreateObject("TCScript.Helper")

f = tcs.GetSrcPath
relpath = left(filename, len(filename) - len(fso.GetFileName(filename)))
relpath = Mid(relpath, Len(f)+1)
content = relpath

Set fso=nothing
Set tcs=nothing

Добавлено: Ср июл 12, 2006 01:13
funduk
Ещё скрипт.

Добавлено: Чт авг 24, 2006 18:43
Lev
Шоб не потерялось :)
Пометить файлы/папки

[off]funduk Хорошо бы в дополнение к ссылкам давать краткое описание[/off]