Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Поиск недокачанных изображений
Goto page Previous  1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
SVM



Joined: 16 Oct 2008
Posts: 47

Post (Separately) Posted: Fri Sep 26, 2014 20:04    Post subject: Reply with quote

Skif_off
хоткей я уже добавил.
Skif_off wrote:
А чем плох Alt+Tab?

Что-то я не нашёл, как с помощью Alt+Tab можно свернуть скрипт в трей.
Я не сварачиваемые окна сварачиваю с помощью Caesar, но такая функция в скрипте не помешала бы.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Sep 26, 2014 21:05    Post subject: Reply with quote

SVM wrote:
Что-то я не нашёл, как с помощью Alt+Tab можно свернуть скрипт в трей.

Alt+Tab позволяет быстро переключать окна.
Back to top
View user's profile Send private message
SVM



Joined: 16 Oct 2008
Posts: 47

Post (Separately) Posted: Tue Sep 30, 2014 13:48    Post subject: Reply with quote

Skif_off
У меня во время проверки большого колличества jpeg файлов, скрипт иногда зависает. Висит в процессах, нагружая процессор на 50%, в это время JpegTran.exe из процессов изчезает.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Tue Sep 30, 2014 15:11    Post subject: Reply with quote

В качестве слабого компа выступал HP Pavilion dm1-4000er (только на аккумуляторе - сбалансированный/энергосберегающий режим + Avast)
- Снижена нагрузка на процессор со стороны AutoIt.exe - не более 2-4% максимум).
- Процесс jpegtran.exe считается зависшим спустя 30 секунд (подобрано подсчетом времени оптимизации больших файлов - пачки 50ти метровых JPEG (на одном из файлов (10843x6920) jpegtran.exe отожрал ~540 Мб ОЗУ, 200 Мб и 21672x13820 не прожевал, имейте в виду (в логе будет Insufficient memory (case 4))) после запуска и принудительно завершается с записью в лог.
- Возможно увеличение времени работы на большом количестве мелких (типа 20-200 кб) файлов, хотя на большом количестве типичных фоток с мыльницы, наоборот, наблюдал уменьшение времени на ~13%.
 Скрипт:

 Для полной самодостаточности в конец скрипта скопировать из FileOperations.au3 функции:

З.Ы. На нормальном, достаточно современном десктопе с не самыми медленными хардами и более чем одним ядром (антивируснику же надо нагнуть систему), можно попробовать поставить Opt('WinWaitDelay', 50): выигрыш от 2% и далее на разнородных файлах (ну и на большом количестве).


Last edited by Skif_off on Tue Oct 07, 2014 10:32; edited 2 times in total
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Wed Oct 01, 2014 13:04    Post subject: Reply with quote

Если кому-нибудь интересно: проверил работу с over MAX_PATH - нормально
 с небольшим изменением скрипта

(предполагается, что скрипт, jpegtran.exe и начальный каталог лежат в пределах MAX_PATH), но только на Win7 (и выше, вероятно) Sad На WinXP SP(2|3) не срабатывает, если путь длиннее MAX_PATH, ищу решение, возможно - тупо прикручу проверку версии ОС. Или забить и просто чуть изменить текст ошибки на Can't open file for reading (Unicode or MAX_PATH?), т.к. с префиксом "\\?\" всё равно работает.

Кстати, с умляутами и вообще юникодом jpegtran.exe не сработает, в лог попадет запись вида:
%путь к jpegtran%\jpegtran.exe: can't open \\?\%путь к файлу%\%имя файла с заменой проблемных символов на похожий из класс. латиницы%.jpg for reading
С случае ещё и длинных путей получается ппц: на тестовой папке в лог попала строка с 753 символами, чтобы подсократить,
 можно

Как скажется на скорости - не проверял.
Back to top
View user's profile Send private message
SVM



Joined: 16 Oct 2008
Posts: 47

Post (Separately) Posted: Mon Oct 06, 2014 14:49    Post subject: Reply with quote

Skif_off
Хорошо если было бы возможно переместить найденные недокаченные фотографии с сохранением структуры папок, через gui или например, как в CloneSpy создавался bat файл.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Mon Oct 06, 2014 23:41    Post subject: Reply with quote

SVM
В jpgerror.txt между именем файла и текстом ошибки вставляется табуляция, как раз на случай использования в качестве разделителя в любом табличном процессоре (LibreOffice Calc/Microsoft Excel/PlanMaker (SoftMaker Office)/Spread32), но это, конечно, если только вручную.
Надо подумать, но перемещение - это запись на носитель, если только опцию с копированием.

И не все будут недокачанными - что-то не получится открыть из-за размера или длинного пути, как минимум: не искал все сообщения jpegtran, только то, что можно смоделировать переименованием и HEX-редактором (пока тестировал).
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Tue Oct 07, 2014 05:16    Post subject: Reply with quote

Усложнён обработчик ошибок для диалога выбора каталога, теперь сразу вылезет сообщение об ошибке и будет предложено повторить, если пользователь вдруг промахнётся и выберет "Компьютер", "Панель управления" или что-то в этом духе.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sun Sep 06, 2015 19:43    Post subject: Reply with quote

Скрипт AutoIt:
- заново сделан GUI;
- в поле ввода пути поддерживается drag and drop;
- закрытие необходимо подтверждать (дважды случайно закрыл);
- несколько ускорена проверка (ошибка не пишется сразу в файл, а добавляется в переменную и записывается всё разом);
- префикс для длинных путей (больше MAX_PATH) используется по умолчанию (на WinXP путь обрезается, решение (пока) не нашёл, разработчикам jpegtran писал - не ответили);
- добавлена возможность использовать файл-список (например, результат поиска): *.tmp для ТС и *.lst для DC, список должен быть в UTF-16LE;
- скрипты нумеруются начиная с 1, на случай запуска нескольких копий (число дописывается в имена временных и лог-файлов, в заголовок окна и заголовки сообщений).

Скрипт сделан полностью самодостаточным, писалось и проверялось с AutoIt версии 3.3.8.1.

Все временные файлы создаются в %Temp%, чтобы исключить запись на носитель (в WinPE в случае нештатного завершения работы ОС лог будет потерян).
Закрытие скрипта крестиком или Alt+F4 просто завершит его работу, прерывание задания только клавишей Esc! В этом случае будет показан результат на текущий момент.

Остальное, включая список поддерживаемых параметров запуска см. в комментариях в начале скрипта. Смотрите примечание!
 Скрипт

 Использование:


Last edited by Skif_off on Mon Apr 23, 2018 23:43; edited 20 times in total
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Wed Sep 23, 2015 14:53    Post subject: Reply with quote

Скрипт AutoIt: убраны лишние константы; уточнения в комментариях.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Oct 23, 2015 16:40    Post subject: Reply with quote

Скрипт AutoIt:
- параметр запуска "recurs" заменён на "--recurs";
- скрипты нумеруются начиная с 1, на случай запуска нескольких копий (число дописывается в имена временных и лог-файлов, в заголовок окна и заголовки сообщений).

Для понимающих или желающих: попробовал добавить открытие лога не в редакторе по умолчанию для *.txt, а в редакторе из настроек ТС или DC. Для TC допустимые значения ключа Editor - варианты типа
 Hidden text

DC не дописывает "%1". Поддерживаются %COMMANDER_PATH% и %COMMANDER_DRIVE%.
Не уверен на 100%, пока не добавил, идеи приветствуются. Как добавить самостоятельно:
- перед строкой
Code:
#Region ;FileOperations.au3, 1.8.5 (2014.05.26)

вставить функцию
 Hidden text

- заменить в двух местах
Code:
ShellExecute($sTemp & '\jpgerror' & $Num & '.txt')

на
Code:
__OpenLog($sTemp & '\jpgerror' & $Num & '.txt')
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Tue Oct 27, 2015 06:08    Post subject: Reply with quote

Скрипт AutoIt:
- исправлена ошибка в случае использования списков файлов: туперь пустая строка в конце убирается.
- правка имён переменных.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Tue Dec 13, 2016 03:45    Post subject: Reply with quote

Скрипт обновлён:

- исправлено получение индекса для окна/лога/временного файла
 Hidden text

- теперь статус (индикатор общего количества файлов и файлов с проблемами) не будет сбрасываться сразу после открытия лога, а только после начала нового поиска;
- исправлено время и условие закрытия дескриптора лог-файла (в некоторых случаях могла вылезти ошибка доступа к файлу);
- добавлена возможность указать в поле ввода имена папок для исключения из поиска, формат записи:
Quote:
ваша папка для поиска|папка для исключения1|папка для исключения2

или
Quote:
полный путь к файлу-списку|папка для исключения1|папка для исключения2

Имя папки для исключения ищется в любом месте полного имени файла!
В поле ввода кавычки не нужны, а при запуске с параметрами необходимо брать в кавычки всю строку целиком.
- добавлена возможность использовать в поле ввода переменные окружения;
- значительно уменьшен размер скрипта: из главной функции UDF FileOperations.au3 убрано неспользуемое и выпилены ставшие ненужными доп. функции.

Добавлено спустя 23 минуты:

Скрипт обновлён:

- изменено поведение при нажатии клавиши Esc: теперь задание не будет прерываться сразу, а пользователю будет задан вопрос.


Добавлено спустя 20 минут:

Скрипт обновлён:

- исправлено зацикливание при попытке прервать задание нажатием клавиши Esc.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Dec 15, 2016 22:04    Post subject: Reply with quote

Скрипт обновлён:

- добавлена проверка существования jpegtran.exe.
- мелкие правки.

Если делать копирование проблемных файлов, то сохранять ли все метки дат? Учитывая, что может быть использован файл-список, копирование проще с сохранением полного пути.
Как-то это смущает несколько: файл может быть просто большим или его имя содержит юникод, может, Jpegtran тупо завис - такие файлы попадают в список проблемных.

Добавлено позже:
Пожалуй, проще генерировать батники...
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Dec 16, 2016 18:53    Post subject: Reply with quote

Скрипт обновлён:

- добавлена возможность сгенерировать два cmd-файла - для копирования и удаления файлов. Кнопка будет доступна только если найдены файлы с проблемами (Смотрите примечание в начале скрипта!). Необходимо будет указать каталог назначения, дерево каталогов будет создано командами mkdir (если не отключали режим расширенной обработки команд);
- изменены имена создаваемых файлов;
- дополнительные проверки/обработка ошибок;
- прочие небольшие правки.

 Имена создаваемых файлов:


Описание в начале скрипта, в комментариях. Смотрите примечание! Это примечание дописывается и в комментарии в создаваемые cmd-файлы.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5  Next
Page 3 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group