Страница 2 из 16
Добавлено: Ср авг 30, 2006 11:32
Lev
Переименование файлов по содержимому (
Исходная тема (Нем.))
Q. У меня есть автоматически пронумерованые текстовые файлы (1.txt, 2.txt,…), в первой строке содержимого которых в кавычках содержится их настоящее имя.
Могу ли я выкусить имена и переименовать их?
ricobautsch
Код: Выделить всё
Set fso = CreateObject("Scripting.FileSystemObject")
Set oTextStream = fso.OpenTextFile(filename)
If not oTextStream.AtEndOfStream Then
s = oTextStream.ReadLine
Pos1 = InStr(1, s, """")
Pos2 = InStrRev(s, """")
If (Pos1 > 0) and (Pos2 > Pos1) Then
content = Mid(s, Pos1 + 1, Pos2 - Pos1 - 1)
Else
content = "not found"
End If
End If
oTextStream.Close
Скрипт ищет в первой строке файла кавычки (“) и возвращает заключённый в них текст.
Теперь легко произвести мультипереименование.
Добавлено: Чт фев 15, 2007 02:41
valexiev
Еще желание для Script_WDX: как-то задавать
ТИП результата. А то иначе Командир в фильтрах всегда третирует script.Result как стринг, и соответственно операции стринговъе (contains, equal, regexp). Иногда полезно чтоб результат бъл числовъм (<, >).
Вот например в моем скрипте
для изчисления разницъ дат до "базового" файла я бъл заставлен добавить к результату значок (+) или (-) в зависимости от разницъ, чтоб можно бъло потом сделать фильтр для раскрашивания.
Добавлено: Чт фев 15, 2007 18:29
Lev
Мне не нравятся результаты округления числовых значений возвращяемых контентными плагинами, поэтому в своих плагинах работающих только с числами, я всё равно возвращаю стринг. В ToDo занесу, сделать не обещаю.
Добавлено: Пн мар 26, 2007 10:53
Batya
Lev
Тут появилась идея - в параметре Script иметь возможность задавать параметры для скрипта, например:
Где 1 - режим работы скрипта. Будет актуально, если ты всё же сделаешь возможность возврата нескольких результатов одним плагином.
В принципе, можно и добавить какой-нибудь параметр, например, Params:
или
Код: Выделить всё
Script=My_Script.vbs
Param1=1
Param2=2
Param3=3
Param4=4
Добавлено: Пн мар 26, 2007 11:27
Batya
Еще идея - а почему имя инишника всегда script.ini? Если имя инишника делать по имени файла плагина, то в одной папке можно хранить несколько wdx-ов.
Или ...
Еще вариант - передавать в скрипт имя файла вызвавшего его плагина - для использования одного скрипта с несколькими файлами плагина. Т.е. в одной папке лежит один скрипт, один инишник и несколько wdx.
Новый скрипт -
http://forum.wincmd.ru/viewtopic.php?p=26601#26601.
Добавлено: Пн мар 26, 2007 16:26
Lev
а почему имя инишника всегда script.ini?
При программировании, задал жестко. Потом люди захотели нескольких экземпляров плагина - придумал обходной путь, в код даже и не влезал...
переделать имхо несложно, но времени нет. На данный момент сделал поддержку sub's и function's в скрипте, потом стал привинчивать многоколоночность и попортил, то что было.
Про передачу параметров надо думать.
Добавлено: Пт мар 14, 2008 17:50
Lev
Добавлено: Ср июн 04, 2008 14:44
Batya
На всякий случай -
Поиск по списку.
Lev
Не мог бы ты прикрутить принудительный выход из скрипта, типа WScript.Quit? Просто, если возвращаемое значение уже определено, не очень красиво дальше вешать кучу if-ов.
Добавлено: Ср июн 04, 2008 15:40
Lev
Не очень понял, давно ничего не скриптовал :(
а разве средствами vbs нельзя завершить скрипт или принудительно ускакать в его хвост?
Добавлено: Ср июн 04, 2008 17:55
Batya
Lev
Пинудительное завершение WScript.Quit выдает ошибку, а принудительно ускакать можно только с помощью обрамляющих if-ов, отчего код не очень красиво выглядит.
Добавлено: Чт июн 05, 2008 12:58
Lev
А обрамление в sub/end sub с exit sub в местах выхода - красиво? (то же самое для function)
А в основном блоке соответственно просто вызов процедуры/функции.
Добавлено: Чт июн 05, 2008 15:46
Batya
Lev
Хм. Отлично!
Добавлено:
Переделал, с учетом новой идеи, скрипт поиска по списку. По-моему, так даже на порядок красивее

(функции можно называть по имени возвращаемой колонки):
Код: Выделить всё
'============================
' Колонка Result будет возвращать признак наличия файла\каталога в указанном файле-списке:
' 0 - файл\каталог НЕ найден; 1 - файл\каталог найден
'=== Изменяемые параметры ===
Const FileList = "C:\FileList.txt" 'Файл-список
'============================
Dim FSO
Const ForReading = 1
content = Result
Set FSO = Nothing
Function Result
Dim List, dlm
Result = 0
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(FileList) Then
Exit Function
End If
On Error Resume Next
List = FSO.OpenTextFile(FileList, ForReading, False).ReadAll
If Err.Number <> 0 Then
Exit Function
End If
On Error GoTo 0
dlm = vbNewLine
If InStr(1, dlm & List & dlm, dlm & filename & dlm, vbTextCompare) > 0 Then
Result = 1
End If
End Function
Добавлено: Сб мар 28, 2009 09:30
stal1n
пожалуйста покажите кто-нибудь свой рабочий script.ini
я никак не могу настроить ни один скрипт
если можно, напишите как правильно подключать скрипты
Добавлено: Пт апр 03, 2009 12:37
stal1n
неужели никто не поможет?
Добавлено: Пт апр 03, 2009 15:37
Lev
В поставке по-умолчанию вполне себе рабочий script.ini, в котором подключен скрипт ext.vbs, выдающий результаты для ps, eps, htm, url и т.п. файлов.
Методы установки, подключения и использования плагина практически не отличаются от остальных контентных wdx плагинов. Эти методы раскрыты в хелпе и неоднократно на страницах форума, переписывать их лишний раз и в эту тему не вижу необходимости.
Лучше опишите, что и как Вы делаете и что у Вас не получается.