ExtractsFromBarMenu.vbs - Извлечение из .bar файлов значений
|
|
Andrey_A | Дата: Четверг, 29.03.2012, 11:50 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Извлекает из всех в .bar файлов в указанной папке значения menuX= и сохраняет результат в алфавитном порядке в указанный файл
Доступно только для пользователей
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 18:35 | Сообщение № 2 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Результат на моей сборке, те на всей папке bar Code CurrPorts - показывает все открытые порты вашего компьютера, закрытие TCP-соединений, завершение процессов CurrPorts - показывает все открытые порты вашего компьютера, закрытие TCP-соединений, завершение процессов DomainHostingView - показывает подробную информацию о доменах FileZilla - FTP-менеджер для загрузки и скачивания файлов с FTP-серверов FileZilla - FTP-менеджер для загрузки и скачивания файлов с FTP-серверов FileZilla - FTP-менеджер для загрузки и скачивания файлов с FTP-серверов FileZilla - FTP-менеджер для загрузки и скачивания файлов с FTP-серверов FileZilla Server - конфигурирование, настройка и мониторинг работы сервера FileZilla Server - конфигурирование, настройка и мониторинг работы сервера FileZilla Server - конфигурирование, настройка и мониторинг работы сервера FileZilla Server - конфигурирование, настройка и мониторинг работы сервера IPNetInfo - показывает всю доступную информацию об IP-адресе MACAddressView - информация о сетевых адаптерах по их MAC адресам NetRouteView - графическая оболочка стандартной Windows утилиты по управлению маршрутами OperaCacheView - просмотр кэша веб браузера Opera OperaPassView - восстановление паролей в веб браузере Opera Putty - Telnet и SSH клиент. Help в папке с программой Putty - Telnet и SSH клиент. Help в папке с программой SiteShoter - создание скриншотов веб страниц SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером Tftpd32 - DHCP, TFTP, SNTP и Syslog сервера + TFTP клиент Uninstall Office 2003 Uninstall Office 2007 Uninstall Office 2007 Uninstall Office 2010 VideoCacheView - извлечение видео файлов из кэша веб браузеров WakeMeOnLan - удалённое включение компьютера WinSCP - графический клиент протоколов SFTP и SCP Wireless Network Watcher - показывает кто подключался к вашему WiFi WirelessNetView - обзор активных Wi-Fi сетей. Для каждой найденной сети показывает расширенную информацию Запуск сервера, как программы Запуск сервера, как программы Запуск сервера, как программы Инсталляция и запуск сервера в качестве службы Инсталляция и запуск сервера в качестве службы Остановка и удаление службы сервера Остановка и удаление службы сервера Остановка сервера, как программы Остановка сервера, как программы Скачать/обновить все утилиты от NirSoft в сборке TC Скачать/обновить все утилиты от NirSoft в сборке TC Скачать/обновить все утилиты от NirSoft в сборке TC Скачать/обновить все утилиты от NirSoft в сборке TC Скачать/обновить все утилиты от NirSoft в сборке TC Скачать/обновить все утилиты от NirSoft в сборке TC Скачать/обновить все утилиты от NirSoft в сборке TC Скачать/обновить все утилиты от NirSoft в сборке TC То есть всё из menuX, но с повторами и с 1 бара и далеко не всё.
Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 18:37 |
|
| |
Andrey_A | Дата: Четверг, 29.03.2012, 18:40 | Сообщение № 3 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Quote (HA3APET) Результат на моей сборке, те на всей папке bar Не понял, поподробнее, я сделал как было в задании... Что-то надо дополнительно У меня в сборке выдало примерно 3500 строк. Но мне функционал не сильно нужен - я список вытаскиаю по другому
====================== Добавлено: Я посмотрел barы в твоей сборке - они все в разной кодировке, у меня они в одной Я попробую с этим что-то сделать... Я так понял, что нужно удалить дубликаты
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 18:48 | Сообщение № 4 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Да ничего доп не надо, всё правильно ты понял, но результат почему то не удовлетворительный, он выше. Вот сижу тестирую по 1 бару. На моих самых больших он спотыкается и выводит следующее. Code --------------------------- Windows Script Host --------------------------- Сценарий: C:\PowerUserv57\scripts\Новый файл.vbs Строка: 52 Символ: 28 Ошибка: Индекс выходит за пределы допустимого диапазона: '[number: -1]' Код: 800A0009 Источник: Ошибка выполнения Microsoft VBScript
--------------------------- ОК ---------------------------
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 18:53 | Сообщение № 5 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Папка с моими барами. ftp://109.60.243.27/Bars.zip
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 18:54 | Сообщение № 6 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Да, точно! У меня разная кодировка, забыл предупредить.
|
|
| |
Andrey_A | Дата: Четверг, 29.03.2012, 18:55 | Сообщение № 7 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
У меня есть твои бары, я вот смотрю их - и дело всё в кодировке filezilla.bar - ANSI PEcommand.bar - UTF-16 Постараюсь побороть
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 18:59 | Сообщение № 8 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Andrey_A, если проще, то пусть всё будет в Юникоде! И тебе в сборке советую в Юникод перевести, а то на буржуйских версиях Винды будут кракозябры. Просто для Юникода я подправил! Спасибо за скрипт!
Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 19:43 |
|
| |
Andrey_A | Дата: Четверг, 29.03.2012, 21:09 | Сообщение № 9 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Уточнить надо: 1. Нужно выдать общий список по всем барам или для каждого отдельно? 2. Удалять ли дубликаты?
Я так понял один общий список. У меня скрипт читает и складывает всё содержимое, затем отбирает "menuX" , далее сортирует
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 21:10 | Сообщение № 10 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Список формируется по алфавиту, но сперва идут с заглавной буквы, а с маленькой все в самом низу. Общий! Дубликаты удалять! Но у меня их нет) На данный момент меня уже всё устраевает, кроме того, что строки с мал. буквы в самом низу.
Сделал так Code copy /y "%~dp0..\..\install\User\User.ini" "%~dp0..\..\install\Bars\User.bar" "%~dp0ExtractsFromBarMenu.vbs" "%~dp0..\..\install\Bars\" "%~dp0Spisok.txt" findstr /c:" - " "%~dp0Spisok.txt" >SpisokProgram.txt del "%~dp0Spisok.txt" del "%~dp0..\..\install\Bars\User.bar" User.ini - это меню Запуск
Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 21:15 |
|
| |
Andrey_A | Дата: Четверг, 29.03.2012, 21:22 | Сообщение № 11 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Извлекает из всех в .bar файлов в указанной папке значения menuX= и сохраняет результат в алфавитном порядке в указанный файл
Code ' ExtractsFromBarMenu.vbs '======================== Описание ===================================== ' Извлекает из всех в .bar файлов в указанной папке значения menuX= ' и сохраняет результат в алфавитном порядке в указанный файл '======================= Параметры ===================================== ' 1-й параметр: путь\до\папки\bar-файлов ' 2-й параметр: путь\к\файлу куда сохраняется информация '======================== Примеры ===================================== ' "%%COMMANDER_PATH%%\Bar" "%%COMMANDER_PATH%%\Bar.txt"
' Автор: Аверин Андрей ' Версия: 1.1 (29.03.2012) ' Mail: Averin-And@yandex.ru ' Site: http://tc-image.3dn.ru/forum/3-261-856-16-1333007402 '======================================================================== If WScript.Arguments.Count < 2 Then MsgError(1) FFolder = GetPath(WScript.Arguments(0)) : bFile = GetPath(WScript.Arguments(1)) : BT = ""
With CreateObject("Scripting.FileSystemObject") If .FileExists(FFolder) Then MsgError(2) Set FF = .GetFolder(FFolder) For Each Files In FF.Files If LCase(.GetExtensionName(Files)) = "bar" Then B = .OpenTextFile(Files).ReadAll If InStr(LCase(B), "[buttonbar]") = 0 Then B = .OpenTextFile(Files, 1, False, -1).ReadAll If InStr(LCase(B), "[buttonbar]") = 0 Then B = .OpenTextFile(Files, 1, False, -2).ReadAll If InStr(LCase(B), "[buttonbar]") > 0 Then BT = BT & B & vbNewLine N = InStr(BT, "яю[") If N > 0 Then BT = Mid(BT, 1, N - 1) End If B = "" Next If Len(BT) > 0 Then L = Split(BT, vbNewLine) For i = 0 To Ubound(L) If Len(L(i)) > 0 Then If InStr(LCase(L(i)), "menu") > 0 Then N = Trim(Mid(L(i), InStr(L(i), "=") + 1)) If Len(N) > 0 Then T = T & N & vbNewLine End If End If Next M = Split(T, vbNewLine) On Error Resume Next MM = DelDublicateArr(M) SortingUp MM, 0, Ubound(MM) T = Join(MM, vbNewLine) .CreateTextFile(bFile, True).Write T End If End With
Set FF = Nothing : WScript.Quit Function GetPath(pPath) : GetPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath) : End Function
Sub MsgError(N) Select Case N Case 1 Msg = "Должно быть Два параметра!" Case 2 Msg = "Указанная папка не существует" End Select MsgBox Msg, vbOKOnly & vbInformation, "Чтение menu из .bar файлов" : WScript.Quit End Sub
Sub SortingUp(sArr, ll, rr) Dim ii, jj, xx, yy ii = ll : jj = rr : xx = sArr((ll + rr) \ 2) Do While sArr(ii) < xx : ii = ii + 1 : Wend While xx < sArr(jj) : jj = jj - 1 : Wend If ii <= jj Then If sArr(ii) <> sArr(jj) Then yy = sArr(ii) : sArr(ii) = sArr(jj) : sArr(jj) = yy End If ii = ii + 1 : jj = jj - 1 End If Loop Until ii > jj If ll < jj Then SortingUp sArr, ll, jj If ii < rr Then SortingUp sArr, ii, rr End Sub
Function DelDublicateArr(Arrr) Dim oDict, Item, Key Set oDict = CreateObject("Scripting.Dictionary") oDict.RemoveAll : oDict.CompareMode = 0 For Each Item In Arrr If Len(Item) > 0 Then If Not oDict.Exists(Item) Then oDict.Add Item, Item End If Next Key = oDict.Keys : Set oDict = Nothing : DelDublicateArr = Key End Function
|
|
| |
Andrey_A | Дата: Четверг, 29.03.2012, 21:25 | Сообщение № 12 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Всё равно все файлы не хочет читать даже в одной кодировке, попробуй... Если что может на другом языке попробую
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 21:29 | Сообщение № 13 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Что значит не хочет? У меня же работает. Предыдущий. Я просто всё в Юникод перевёл и добавил в скрипт поддержку Юникод
|
|
| |
HA3APET | Дата: Четверг, 29.03.2012, 21:31 | Сообщение № 14 |
Генерал-полковник
На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
|
Во втором скрипте спотыкается на "AkelPad.Document" У меня его нет.
Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 21:32 |
|
| |
Andrey_A | Дата: Четверг, 29.03.2012, 21:34 | Сообщение № 15 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Поправил...
Quote (HA3APET) Что значит не хочет? Я просто на твоих старых барах тренировался, всю тренировку сломал!
|
|
| |
|