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

Добавлено: Вс июн 05, 2016 21:01
Flasher
Hjkma
Улыбнуло. Какие ж это "повторы"? :D Это называется "кол-во файлов по маске".

Добавлено: Вс июн 05, 2016 21:11
Hjkma
Flasher
Ну тогда ладно. Но вообще это возможно узнать, сколько всего искомых файлов есть в папках? Чтобы можно было бы получить точную цифру кол-ства файлов и при этом желательно иметь отсортированный список, дабы список начинался с папках, в которых содержатся больше всего искомых файлов. Спасибо.

Добавлено: Вс июн 05, 2016 22:42
Flasher
Hjkma
Завис на глубой ошибке (забыл в одном месте убрать старое условие др. скрипта). Вот код:

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

'====================================================================================
' Создать список отсортированных по числу файлов папок в структуре активного каталога
' Параметр: [<маска файлов>]
' Примеры:  *.*  |  *.avi;*.flv  |  "FileName.avi;File Name2.avi;File*Name.mp4"

' Условие: путь запуска - пустой
'====================================================================================

Set FSO  = CreateObject("Scripting.FileSystemObject")
Set ShAp = CreateObject("Shell.Application")
Set Dict = CreateObject("ADODB.Recordset")
Dict.Fields.Append "Name", 200, 255
Dict.Fields.Append "Count", 139, 22
Dir = FSO.GetAbsolutePathName("")
Dict.Open : ForFolder Dir
If Dict.RecordCount Then
  Dict.Sort = "Count DESC" : File = FSO.GetFileName(Dir) & ".csv"
  FSO.CreateTextFile(File,1,1).Write Dict.GetString
  ShAp.ControlPanelItem File
End If : Dict.Close

Sub ForFolder(Fold)
  Set Items = ShAp.NameSpace(Fold).Items
  Items.Filter 73920, WScript.Arguments(0)
  If Items.Count Then
    Dict.AddNew : Dict("Name") = FSO.GetFileName(Fold)
    Dict("Count") = Items.Count
  End If : Items.Filter 73888, "*"
  For Each F in Items : ForFolder F : Next
End Sub

Добавлено: Вс июн 05, 2016 23:27
Hjkma
Flasher
Спасибо. Но что-то пока не получилось. Создал кнопку, написал параметры с масками поиска. Нажимаю на неё, спустя несколько минут открывается Notepad++ и предлагает создать где-то десяток новых текстовых файлов, причем названия этих файлов взяты с параметров масок. И эти файлы пусты, там ничего не написано. Ну вообще не совсем то я просил. Мне нужен один список, в котором будет список папок с указанием кол-ства файлов, встречающих в них. Не могли бы вы проверить работу скрипта, успешно он у вас создает список?

Добавлено: Вс июн 05, 2016 23:37
Flasher
Hjkma
Успешно. Ещё разок советую скопировать. Условие выполнено? Похоже, что нет.

Добавлено: Вс июн 05, 2016 23:46
Hjkma
Flasher
Путь запуска на настройке панели инструмента пустой. Еще раз скопировал текст скрипта - все тоже самое. Запускаю кнопку, открывается Notepad++ предложениями создавать файлы, с именами этих масок и они все пустые. Может что-то не так с параметрами?
Писал в виде filename1;filename2;filename3;

Правильно написал?

Добавлено: Вс июн 05, 2016 23:50
Flasher
Hjkma
В примере масок на самом конце нет ;. Вся строка параметров какая?
Но в любом случае - это бред. Откуда notepad++ берёт эти имена, для меня большая загадка.

Добавлено: Вс июн 05, 2016 23:57
Hjkma
Flasher
Взял вот это
Melissa Clarke;Mel Clarke;Clarke
В одну папку положил две папки, у которых есть файлы с таким названиям. Захожу в такую папку, запускаю кнопку и нет реакции, ничего не происходит. А еще раньше на vbs в качестве основной программы для открытия стоял Nopepad++, поменял основную программу, теперь стоит Windows Based Script и Notepad++ не запускается, но и ничего не происходит. Где должен после операции лежать этот файл-список?

Добавлено: Пн июн 06, 2016 00:00
Flasher
Hjkma
У файлов не расширений?
Вообще csv по логике должна запускать Excel'e-подобная программа, а не Notepad++. Файл создаётся в активной папке.

Добавлено: Пн июн 06, 2016 00:04
Hjkma
Flasher
У файлов есть расширения, это jpg и png. Файла csv нету в активной папке.

Добавлено: Пн июн 06, 2016 00:10
Flasher
Hjkma
Так почему они не указаны (как в примере)?
А ещё при наличии пробелов параметр нужно брать в кавычки.
И что показывает скрипт?:

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

MsgBox CreateObject("WScript.Shell").RegRead("HKCR\.csv\")

Добавлено: Пн июн 06, 2016 00:20
Hjkma
Flasher
Как оказалось, причина была в том, что скрипт требует полного имени файла в параметрах, а не лишь просто слово. Как только написал в параметрах полное названия файла, сразу же создался csv файл и открылся Excel с содержимым этого файла. Возможно ли подправить скрипт, чтобы он не требовал полного имени файла, а лишь только часть имени (слово)? Ибо у меня файлов сотни тысяч, не могу же написать все эти названия файлов в параметрах, да и размер ограничен 2048 символами.

Добавлено: Пн июн 06, 2016 00:29
Flasher
Hjkma
ЕМНИП, то, что такое маски файлов, проходят в школьные годы. Примеры с ними приведены в шапке (в ТС: Alt+F7 > F1). Маска помимо полного имени подразумевает как минимум ещё * и ?. Это вообще уже RTFM начального уровня работы за компьютером.

Добавлено: Пн июн 06, 2016 00:36
Hjkma
Flasher
Исправил, теперь все как надо работает. Извините пожалуйста за мою компьютерную безграмотность. И большое вам спасибо, за помощь!

Добавлено: Пн июн 06, 2016 00:39
Flasher
Hjkma
Извиняю. Пожалуйста. :wink:

Add: Шапку немного поправил.