Тест файлов или Запуск MD5 с панели инструментов

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

arch31
Сообщения: 11
Зарегистрирован: Ср июн 30, 2010 10:10

Тест файлов или Запуск MD5 с панели инструментов

Сообщение arch31 »

Здравствуйте. Сбросил себе на флешку в целях переносного использования Total Commander 7.50a плюс кое-какие portable программы с ним для нормальной работы на чужих компьютерах. По работе приходится запускать тотал на многих компах, некоторые из которых, понятное дело, кишат вирусами. Архивирование и восстановление Акронисом важных файлов, конечно, помогает, но решил перестраховаться, чтобы в случае чего не переносить заразу с одного компа на другой. Подсчитал контрольную сумму системных файлов и полученный файл md5 сбросил в одну из системных папок на флешке. При запуске этого файла происходит проверка CRC указанных в нем файлов и сравнение с записанными значениями. Расхождения в CRC считаются ошибкой и файлы выделяются красным.

В связи с этим хотел бы спросить, каким образом можно привинтить к панели инструментов ссылку на этот файл? При двойном щелчке в Total файл запускается и что надо проверяет, но напрочь отказывается запускаться по ссылке, даже если эта ссылка командеровская. Каждый раз заходить в папку с файлом неудобно, а с панели не запускается. Думаю, дело в команде запуска. Как должна она выглядеть? Пробовал:

%COMMANDER_DRIVE%\[path]\program_files.md5
Результат: "Программа не запускается!"

totalcmd.exe "%COMMANDER_DRIVE%\[path]\program_files.md5"
Результат: "Файл не найден!"

Хождения по Интернету и справке к Тоталу мне дали сведения, что якобы за запуск md5 отвечает команда cm_crccheck. Исходя из этого пробовал следующие варианты:

"%COMMANDER_DRIVE%\[path]\program_files.md5" cm_crccheck
Результат: "Программа не запускается!" То же самое, если без кавычек.

totalcmd.exe /cm_crccheck "%COMMANDER_DRIVE%\[path]\program_files.md5"
Результат: "Файл не найден!"

cm_crccheck "%COMMANDER_DRIVE%\[path]\program_files.md5"
Результат: Проверка контрольной суммы того, что под курсором.

cm_crccheck /"%COMMANDER_DRIVE%\[path]\program_files.md5"
Результат: Аналогично. То же самое, если без кавычек и черты.

Может быть есть в командере какая-нибудь утилита, через которую надо запускать файл? Может быть, нужны еще какие-то дополнительные параметры?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

cm_crccheck - это команда без параметров, она просто вызывает диалог проверки, в точности так, как из меню Файл(ы).

А вопрос, конечно, интересный.
arch31
Сообщения: 11
Зарегистрирован: Ср июн 30, 2010 10:10

Сообщение arch31 »

Дело в том, что при выборе в контекстном меню команды "Открыть" вылезает традиционное виндовское окно с вопросом, какой программой открывать. Хотя по Enter-у или двойному клику запускается.
Может следует написать bat-ник (хотя опять же неизвестно, как прикрутить к нему командеровские пути) или скрипт? Правда в скриптах я не силен.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

А как насчёт такого предложения?: создать колону с подсчётом md5-хэш с помощью конт. плагина wdhash, выделить нужные файлы, сохранить содержимое колонок в файл по команде cm_SaveDetailsToFile(A|W), и потом сохранять их при проверке и сравнивать с исходным файлом инструментом сравнения.
arch31
Сообщения: 11
Зарегистрирован: Ср июн 30, 2010 10:10

Сообщение arch31 »

Flasher, спасибо, конечно, но все дело в том, что ввиду отсутствия времени необходимо проделывать сравнение быстро, одним-двумя действиями. То, что Вы мне предлагаете, все равно вручную надо делать, а мне надо автоматически. Так бы можно было бы просто каждый раз искать и запускать из папки program_files.md5.
Лишние действия, имхо. Если только опять к скрипту дело не сводится.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

arch31 писал(а):одним-двумя действиями
Вариант с тремя действиями.
Рядом с кнопкой "Назад" создать кнопку с командой

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

%COMMANDER_PATH%\totalcmd.exe /O /S /L=Путь\Файл.md5
1 Нажать эту кнопку.
2 Нажать клавишу Enter дважды.
3 Нажать кнопку "Назад".
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

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

TOTALCMD#BAR#DATA
%comspec% /c chcp 1251>nul&
rhash.exe -c --ansi %P%N &pause
%COMMANDER_PATH%\WCMICONS.DLL,55
Check crc file


-1
Проверяется crc-файл под курсором. Если нужно проверить конкретный файл, впишите его имя вместо %P%N.
Если контролируемые файлы находятся не в текущей папке, пути в crc-файле д.б. соответствующие.
RHash здесь
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Уже надоело один и тот же скрипт писать..

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

'Запуск проверки md5-hash для списка файлов
Option Explicit
Dim TCS
Set TCS = CreateObject("TCScript.Helper")
TCS.LockTC True
TCS.SendCommand "cm_FocusCmdLine"
TCS.SendKeystroke "^+1" 'В доп. параметрах клав-ы переключатель на англ. раскладку назначить на Ctrl+Shift+1
TCS.SendKeystroke "cd " & "{%}COMMANDER_DRIVE{%}\[path]\program_files.md5"
TCS.SendKeystroke "{ENTER 2}"
TCS.SendCommand "cm_GotoPreviousDir"
TCS.SendKeystroke "%{ESC}"
TCS.LockTC False
Set TCS = Nothing
Wscript.Quit()
arch31 писал(а):но решил перестраховаться, чтобы в случае чего не переносить заразу с одного компа на другой
Раз, два, три.
arch31
Сообщения: 11
Зарегистрирован: Ср июн 30, 2010 10:10

Сообщение arch31 »

Tol!k, Ваши рекомендации по поводу RHash пробовал, работает. Однако тут программа жестко привязывается к букве диска и если в md5 указать относительный путь для файлов, к примеру,

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

ff256c6c22ed468ebd59836914fc8306 *Firefox Portable\App\Firefox\mozcrt19.dll
01f0d64633ef7db59c8552cff33a5b07 *Firefox Portable\App\Firefox\nspr4.dll
, то RHash ничего не находит.
В случае с флешкой такой способ явно не подходит, т.к. от компа к компу буква диска всегда разная.
Flasher писал(а):

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

'Запуск проверки md5-hash для списка файлов
Option Explicit
Dim TCS
Set TCS = CreateObject("TCScript.Helper")
TCS.LockTC True
TCS.SendCommand "cm_FocusCmdLine"
TCS.SendKeystroke "^+1" 'В доп. параметрах клав-ы переключатель на англ. раскладку назначить на Ctrl+Shift+1
TCS.SendKeystroke "cd " & "{%}COMMANDER_DRIVE{%}\[path]\program_files.md5"
TCS.SendKeystroke "{ENTER 2}"
TCS.SendCommand "cm_GotoPreviousDir"
TCS.SendKeystroke "%{ESC}"
TCS.LockTC False
Set TCS = Nothing
Wscript.Quit()
Что-то не запускается. Пишет:

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

Строка: 4
Символ: 1
Ошибка: Невозможно создание объекта контейнером ActiveX: 'TCScript.Helper'
Код: 800A01AD
Источник: Ошибка выполнения Microsoft VBScript
За ссылочки спасибо! Хотя, думаю, тут у меня все уже решено. Папка Autorun.inf с правами доступа на флешку не дает всяким заразкам записываться. Проблема в другом. Существуют (и я уже натыкался) вирусы, которые на всех дисках (на флешках в том числе) изменяют exe-шки и dll-ки, причем на первый взгляд заражение не заметно. Поэтому для них и решил использовать контроль CRC (MD5).

Если только так:
sa писал(а):%COMMANDER_PATH%\totalcmd.exe /O /S /L=Путь\Файл.md5
Но как-то все равно, не очень... :cry:
Хотя, если иных путей не будет, придется на этом остановиться.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

arch31 писал(а):Что-то не запускается.
Скачать, распаковать в отдельную папку, например, как у меня: "%COMMANDER_PATH%\Scripts\tcwshelp_b11" и запустить из ТС один раз TCWSHelp.exe.
arch31 писал(а):Хотя, если иных путей не будет, придется на этом остановиться.
Не думаю, что после моего скрипта придётся.. :wink:
arch31 писал(а):Папка Autorun.inf с правами доступа на флешку не дает всяким заразкам записываться.
А какие права доступа могут быть во флешечной папке, если она подключается к разным компам? Вообще предлагаю с самими статьями по утилитам ознакомиться: 1, 2, 3.
Последний раз редактировалось Flasher Чт июл 01, 2010 21:49, всего редактировалось 1 раз.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

arch31
Даже стало интересно.

Нашел вот эту утилиту.
Кнопка такая:

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

TOTALCMD#BAR#DATA
cmd /c %COMMANDER_PATH%\Utils\101_md5sum\101_md5sum.exe
-c %P%N && echo ------------------ && pause
%COMMANDER_PATH%\TOTALCMD.EXE,31
Проверка MD5

0
-1
Вместо %P%N можно подставить что-то свое.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):

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

%COMMANDER_PATH%\Utils\101_md5sum\101_md5sum.exe
Пробелы нужно учесть, поэтому в кавычках лучше. А поскольку речь идёт о быстрой проверке без непосредственного перехода в папку, то стоило сразу написать путь. Короче, вариант для этой утилиты и поставленной задачи такой:

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

TOTALCMD#BAR#DATA
cmd /c "%COMMANDER_PATH%\Utils\101_md5sum\101_md5sum.exe"
-c "%%COMMANDER_DRIVE%%\[path]\program_files.md5" && echo ------------------ && pause
%COMMANDER_PATH%\TOTALCMD.EXE,31
Проверка MD5

0
-1
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

arch31

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

TOTALCMD#BAR#DATA
%comspec% /c chcp 1251>nul &cd /d %commander_drive%\[folder]
&rhash.exe -c --ansi sums.md5 &pause >nul
%commander_path%\wcmicons.dll,55
Check CRC file


-1
Batya, лучше давать ссылку на официальную страничку
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher
Я дал только пример кнопки. В любом случае, у arch31 будут свои пути.
Tol!k писал(а):Batya, лучше давать ссылку на официальную страничку
Если б я её знал :) Просто пошарился в инете и наткнулся на эту утилиту.
Нет, я не сплю. Я просто медленно моргаю.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Вариант на основе маленького да удаленького TCFS2.
1 Создать в меню "Запуск" команду перехода к файлу md5

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

cd %COMMANDER_DRIVE%\[path]\program_files.md5
(в рассматриваемом варианте она должна быть первой в меню ).

2. В TCFS2.ini в раздел [Items] добавить команды

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

UserMenu1=tcm(701)  ; Запустить первый пункт меню "Запуск"
CRCcheck =tcm(565)  ; Проверить CRC-суммы(из файлов SFV, MD5, SHA1)
PrevDir  =tcm(570)  ; Назад
3. Далее пользоваться кнопкой

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Addon\TCFS2\TCFS2.exe
/ei UserMenu1 rm1pm CRCcheck PrevDir
%COMMANDER_PATH%\Addon\TCFS2\TCFS2.exe
Проверка MD5


-1
Ответить