Страница 1 из 2
Тест файлов или Запуск MD5 с панели инструментов
Добавлено: Ср июн 30, 2010 12:04
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"
Результат: Аналогично. То же самое, если без кавычек и черты.
Может быть есть в командере какая-нибудь утилита, через которую надо запускать файл? Может быть, нужны еще какие-то дополнительные параметры?
Добавлено: Ср июн 30, 2010 12:13
MVV
cm_crccheck - это команда без параметров, она просто вызывает диалог проверки, в точности так, как из меню Файл(ы).
А вопрос, конечно, интересный.
Добавлено: Ср июн 30, 2010 13:07
arch31
Дело в том, что при выборе в контекстном меню команды "Открыть" вылезает традиционное виндовское окно с вопросом, какой программой открывать. Хотя по Enter-у или двойному клику запускается.
Может следует написать bat-ник (хотя опять же неизвестно, как прикрутить к нему командеровские пути) или скрипт? Правда в скриптах я не силен.
Добавлено: Ср июн 30, 2010 13:16
Flasher
А как насчёт такого предложения?: создать колону с подсчётом md5-хэш с помощью конт. плагина
wdhash, выделить нужные файлы, сохранить содержимое колонок в файл по команде
cm_SaveDetailsToFile(A|W), и потом сохранять их при проверке и сравнивать с исходным файлом инструментом сравнения.
Добавлено: Ср июн 30, 2010 13:29
arch31
Flasher, спасибо, конечно, но все дело в том, что ввиду отсутствия времени необходимо проделывать сравнение быстро, одним-двумя действиями. То, что Вы мне предлагаете, все равно вручную надо делать, а мне надо автоматически. Так бы можно было бы просто каждый раз искать и запускать из папки program_files.md5.
Лишние действия, имхо. Если только опять к скрипту дело не сводится.
Добавлено: Ср июн 30, 2010 14:06
sa
arch31 писал(а):одним-двумя действиями
Вариант с тремя действиями.
Рядом с кнопкой "Назад" создать кнопку с командой
Код: Выделить всё
%COMMANDER_PATH%\totalcmd.exe /O /S /L=Путь\Файл.md5
1 Нажать эту кнопку.
2 Нажать клавишу Enter дважды.
3 Нажать кнопку "Назад".
Добавлено: Ср июн 30, 2010 14:43
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
здесь
Добавлено: Ср июн 30, 2010 15:14
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 писал(а):но решил перестраховаться, чтобы в случае чего не переносить заразу с одного компа на другой
Раз,
два,
три.
Добавлено: Чт июл 01, 2010 16:46
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
Но как-то все равно, не очень...
Хотя, если иных путей не будет, придется на этом остановиться.
Добавлено: Чт июл 01, 2010 17:37
Flasher
arch31 писал(а):Что-то не запускается.
Скачать, распаковать в отдельную папку, например, как у меня: "%COMMANDER_PATH%\Scripts\tcwshelp_b11" и запустить из ТС один раз TCWSHelp.exe.
arch31 писал(а):Хотя, если иных путей не будет, придется на этом остановиться.
Не думаю, что после моего скрипта придётся..

arch31 писал(а):Папка Autorun.inf с правами доступа на флешку не дает всяким заразкам записываться.
А какие права доступа могут быть во флешечной папке, если она подключается к разным компам? Вообще предлагаю с самими статьями по утилитам ознакомиться:
1,
2,
3.
Добавлено: Чт июл 01, 2010 18:14
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 можно подставить что-то свое.
Добавлено: Чт июл 01, 2010 19:00
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
Добавлено: Пт июл 02, 2010 02:18
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, лучше давать ссылку на
официальную страничку
Добавлено: Пт июл 02, 2010 09:46
Batya
Flasher
Я дал только пример кнопки. В любом случае, у
arch31 будут свои пути.
Tol!k писал(а):Batya, лучше давать ссылку на официальную страничку
Если б я её знал

Просто пошарился в инете и наткнулся на эту утилиту.
Добавлено: Пт июл 02, 2010 09:53
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