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

Выделение папок, в которых находится файл...

Добавлено: Чт дек 17, 2009 16:58
Andrey_A
Я несколько раз сталкивался с такой задачей. Есть много папок, и нужно выделить те, в которой находится тот или файл. В первом случае мне нужно было выделить папки с файлом desctop.ini, в другом
descript.ion, в третьем... Возможно это сделать можно скриптом с параметром <файл>

Добавлено: Пт дек 18, 2009 09:43
Batya

Добавлено: Пт дек 18, 2009 16:33
Andrey_A
Скрипт на который дана ссылка, помечает файлы\папки из файл листа
А мне этот файл-лист неизвестен.
В моём случае есть папки, а в некоторых из них находится файл к примеру File.txt, мне необходимо проверить в каких папках есть этот файл и их выделить
Или я что-то недопонял, Batya наведи пожалуйста на мысль

Может быть ссылка неверная? У меня есть скрипт, по-моему от тебя Batya, где ищутся, помечаются папки, в которых есть определённый ТИП файла, вот если бы его подделать, и чтобы он искал не ТИП, а сам ФАЙЛ

Добавлено: Пт дек 18, 2009 20:20
Вахмурка

Добавлено: Вс дек 20, 2009 23:38
Batya
У меня же в шапке скрипта написано:
будет возвращать признак наличия файла\каталога в указанном файле-списке
Может я сам чего-то не понял?
Нужно внести в файл-лист твой ФАЙЛ. Например, вносишь "desctop.ini". Настраиваешь схему подцветки на возвращение у плагина полем Result значения 1. Теперь будут подцвечиваться папки, которые содержат файл "desctop.ini". Разве не это надо?

Добавлено: Пн дек 21, 2009 21:31
Andrey_A
Что-то у меня никогда не было таких проблем с vbs скриптами как с этим. Я тоже думаю, что всё просто, но понять не могу, где ошибаюсь
Ещё раз то, что я делаю
1.Создал папку Script_FileList
2.В папке 4 файла Script_FileList.wdx, FileList.vbs, FileList.txt, script.ini
3.script.ini изменил

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

[Script] 
Section=General

[General] 
Script=FileList.vbs
LongName=1

[Defaults]
LongName=1
ParseDirs=0
4.Добавил плагин к плагинам
5.Составляю шаблон: script_filelist.Result contains 1
6.Куда бы не вставлял шаблон(в поиск, в выделение, в цвет...), результата нет
Подкажи, где собака порылась?

Добавлено: Вт дек 22, 2009 11:34
Batya
Andrey_A
Добавь в секцию General:

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

ParseDirs=1

Добавлено: Вт дек 22, 2009 19:21
Andrey_A
К сожалению это не помогло, пишет Такие файлы не найдены.
Может кто-нибудь выложет эти четыре файла свои, чтобы сравнить, если кто тестил откликнетесь

Добавлено: Ср дек 23, 2009 00:06
Batya
Andrey_A
Хм... Опять впопыхах дал неправильный ответ.
Скрипт вот такой:

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

'========== Изменяемые параметры ===========================================
Const FileList = "C:\FileList.txt" 'Файл-список
'===========================================================================

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1
content = Result

Function Result
  Dim List, f
  Result = 0
  If Not FSO.FolderExists(filename) Then Exit Function
  If Not FSO.FileExists(FileList)   Then Exit Function
  
  On Error Resume Next
  List = FSO.OpenTextFile(FileList, ForReading, False).ReadAll
  If Err.Number <> 0 Then Exit Function
  On Error GoTo 0
  
  For Each f In Split(List, vbNewLine)
    If f <> "" Then If FSO.FileExists(filename & "\" & f) Then Result = 1
  Next
End Function
script.ini:

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

[Script]
Section=General

[General]
ParseDirs=1
Script=General.vbs
Соответственно, если в файле "C:\FileList.txt" содержится, например, script.ini, то для папки, содержащей этот файл вернется 1, иначе 0.

Добавлено: Ср дек 23, 2009 01:03
Andrey_A
Хотел уже ответить, что работает, но увы результат тот же... нет
Кстати я уже все скрипты, которые нашёл для Script... установил и все как-то работают, но с этим либо реакция 0 на всё (на папки, файлы), либо: "такие файлы не найдены"

Добавлено: Ср дек 23, 2009 01:14
Вахмурка
Попробуй, может, с PowerPro больше повезет. Сцыла выше.

Добавлено: Ср дек 23, 2009 01:24
VadiMGP
Andrey_A
Попробуй плагин Filemask.

Добавлено: Ср дек 23, 2009 02:13
Andrey_A
Вахмурка писал(а):Попробуй, может, с PowerPro больше повезет. Сцыла выше.
Выдаёт ошибку

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

Invalid use of period: cannot load plugin, 
invalid handle value, or invalid function: ini
Error occurred near line 6 of script DirColor: l
ocal Masks = ini.enum_keys(IniFile, "Colors")
Press Cancel to end all running scripts.
Ктати в PowerPro появилась возможность убирать "висячесть" программы в трей?

Добавлено: Ср дек 23, 2009 02:33
Andrey_A
VadiMGP писал(а): Попробуй плагин Filemask.
Спасибо огромное - получичось почти с первого раза

Добавлено: Ср дек 23, 2009 09:08
Batya
Andrey_A
Поправил скрипт.

У меня в General.vbs много чего написано. Когда выкладывал итог сюда, удалил случайно лишнюю строку "Const ForReading = 1" :(
Сейчас проверил именно на этом General.vbs. Всё работает.