View previous topic :: View next topic |
Author |
Message |
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Wed Aug 30, 2006 11:32 Post subject: |
|
|
Переименование файлов по содержимому (Исходная тема (Нем.))
Q. У меня есть автоматически пронумерованые текстовые файлы (1.txt, 2.txt,…), в первой строке содержимого которых в кавычках содержится их настоящее имя.
Могу ли я выкусить имена и переименовать их?
ricobautsch
Code: | 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 |
Скрипт ищет в первой строке файла кавычки (“) и возвращает заключённый в них текст.
Теперь легко произвести мультипереименование. |
|
Back to top |
|
|
valexiev
Joined: 09 Feb 2007 Posts: 12
|
(Separately) Posted: Thu Feb 15, 2007 03:41 Post subject: |
|
|
Еще желание для Script_WDX: как-то задавать ТИП результата. А то иначе Командир в фильтрах всегда третирует script.Result как стринг, и соответственно операции стринговъе (contains, equal, regexp). Иногда полезно чтоб результат бъл числовъм (<, >).
Вот например в моем скрипте для изчисления разницъ дат до "базового" файла я бъл заставлен добавить к результату значок (+) или (-) в зависимости от разницъ, чтоб можно бъло потом сделать фильтр для раскрашивания. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Thu Feb 15, 2007 19:29 Post subject: |
|
|
Мне не нравятся результаты округления числовых значений возвращяемых контентными плагинами, поэтому в своих плагинах работающих только с числами, я всё равно возвращаю стринг. В ToDo занесу, сделать не обещаю. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 26, 2007 10:53 Post subject: |
|
|
Lev
Тут появилась идея - в параметре Script иметь возможность задавать параметры для скрипта, например:
Code: | Script=My_Script.vbs 1 |
Где 1 - режим работы скрипта. Будет актуально, если ты всё же сделаешь возможность возврата нескольких результатов одним плагином.
В принципе, можно и добавить какой-нибудь параметр, например, Params:
Code: | Script=My_Script.vbs
Params=1 2 3 4 |
или
Code: | Script=My_Script.vbs
Param1=1
Param2=2
Param3=3
Param4=4 |
|
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 26, 2007 11:27 Post subject: |
|
|
Еще идея - а почему имя инишника всегда script.ini? Если имя инишника делать по имени файла плагина, то в одной папке можно хранить несколько wdx-ов.
Или ...
Еще вариант - передавать в скрипт имя файла вызвавшего его плагина - для использования одного скрипта с несколькими файлами плагина. Т.е. в одной папке лежит один скрипт, один инишник и несколько wdx.
Новый скрипт - http://forum.wincmd.ru/viewtopic.php?p=26601#26601. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Mon Mar 26, 2007 16:26 Post subject: |
|
|
Quote: | а почему имя инишника всегда script.ini? | При программировании, задал жестко. Потом люди захотели нескольких экземпляров плагина - придумал обходной путь, в код даже и не влезал...
переделать имхо несложно, но времени нет. На данный момент сделал поддержку sub's и function's в скрипте, потом стал привинчивать многоколоночность и попортил, то что было.
Про передачу параметров надо думать. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Wed Jun 04, 2008 14:44 Post subject: |
|
|
На всякий случай - Поиск по списку.
Lev
Не мог бы ты прикрутить принудительный выход из скрипта, типа WScript.Quit? Просто, если возвращаемое значение уже определено, не очень красиво дальше вешать кучу if-ов. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Wed Jun 04, 2008 15:40 Post subject: |
|
|
Не очень понял, давно ничего не скриптовал :(
а разве средствами vbs нельзя завершить скрипт или принудительно ускакать в его хвост? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Wed Jun 04, 2008 17:55 Post subject: |
|
|
Lev
Пинудительное завершение WScript.Quit выдает ошибку, а принудительно ускакать можно только с помощью обрамляющих if-ов, отчего код не очень красиво выглядит. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Thu Jun 05, 2008 12:58 Post subject: |
|
|
А обрамление в sub/end sub с exit sub в местах выхода - красиво? (то же самое для function)
А в основном блоке соответственно просто вызов процедуры/функции. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Jun 05, 2008 15:46 Post subject: |
|
|
Lev
Хм. Отлично!
Добавлено:
Переделал, с учетом новой идеи, скрипт поиска по списку. По-моему, так даже на порядок красивее (функции можно называть по имени возвращаемой колонки):
Code: | '============================
' Колонка 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 |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
stal1n
Joined: 14 Jun 2008 Posts: 13
|
(Separately) Posted: Sat Mar 28, 2009 10:30 Post subject: |
|
|
пожалуйста покажите кто-нибудь свой рабочий script.ini
я никак не могу настроить ни один скрипт
если можно, напишите как правильно подключать скрипты |
|
Back to top |
|
|
stal1n
Joined: 14 Jun 2008 Posts: 13
|
(Separately) Posted: Fri Apr 03, 2009 12:37 Post subject: |
|
|
неужели никто не поможет? |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Fri Apr 03, 2009 15:37 Post subject: |
|
|
В поставке по-умолчанию вполне себе рабочий script.ini, в котором подключен скрипт ext.vbs, выдающий результаты для ps, eps, htm, url и т.п. файлов.
Методы установки, подключения и использования плагина практически не отличаются от остальных контентных wdx плагинов. Эти методы раскрыты в хелпе и неоднократно на страницах форума, переписывать их лишний раз и в эту тему не вижу необходимости.
Лучше опишите, что и как Вы делаете и что у Вас не получается. |
|
Back to top |
|
|
|