2

Через реестр я добавил опцию меню правой кнопки мыши для всех типов файлов, которая должна получить контрольную сумму MD5 для файла.

HKEY_CLASSES_ROOT *\shell\Checksum - по умолчанию: получить контрольную сумму

а также

HKEY_CLASSES_ROOT *\shell\Checksum\command - По умолчанию: checkum.cmd "% 1"

Checkum.cmd просто очищает экран, вызывает fciv.exe, используя% 1, а затем делает паузу.

К сожалению, хотя опция "Получить контрольную сумму" правильно отображается в меню правой кнопки мыши, она не выполняет правильное действие при нажатии. Когда я нажимаю на нее, открывается диалоговое окно "Открыть с помощью", что, конечно, не то, что я хочу.

Оба checkum.cmd и fciv.exe находятся в ПУТИ.

checksum.cmd:

@echo off
cls
fciv.exe %1
pause

Кто-нибудь знает, что происходит?

1 ответ1

1

Чтобы выполнить файл .cmd, вам нужно вызвать командную оболочку Windows и сказать ей интерпретировать скрипт. Чтобы настроить это в реестре, измените данные для значения (по умолчанию) командного ключа на cmd.exe как показано ниже:

HKEY_CLASSES_ROOT\*\shell\Checksum\command - Default: cmd.exe /C checsum.cmd "%1"

Кстати, вы могли бы заменить команду pause в вашем скрипте чем-то, что автоматически будет ждать указанное количество времени - достаточно долго, чтобы вы могли прочитать вывод - прежде чем продолжить и делать другие вещи или позволить окну исчезнуть. Например, чтобы сделать паузу на 5 секунд, вы можете использовать:

ping 1.0.0.0 -n 1 -w 5000 >nul

Значение после аргумента -w дает время ожидания в миллисекундах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .