Нахождение, какие банки содержат файл

В Windows XP я вспоминаю, как можно было использовать Windows Search, чтобы найти, какие банки в директории содержат определенный файл класса. Но в Windows 7 это больше не работает. У меня есть опция поиска, помеченная как "Включить сжатые файлы (ZIP, CAB, ...)", но это, похоже, не помогает. Поиск содержимого файла (который появляется в качестве выбора после неудачного начального поиска) также не работает.

Мне удалось найти файл с помощью следующей команды, но это очень сложно (приходится открывать командную строку в нужном каталоге, вставлять обновленную команду и визуально проверять результаты, которые могут быть очень длинными, если есть много jar-файлов),

for %i in (*.jar) DO %JDKHOME%\bin\jar.exe tf %i | grep myfile

2 ответа

Решение

По умолчанию Windows 7 не считает, что.jar - это zip-файл, который он может открыть, поэтому не перечисляет его содержимое.Это можно исправить с помощью следующего добавления в реестр:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.jar\PersistentHandler]
@="{3B224B11-9363-407e-850F-C9E1FFACD8FB}"

Либо вставьте это в текстовый файл и сохраните как fix.reg, затем откройте его и согласитесь добавить его в реестр.

РЕДАКТИРОВАТЬ: GUID является уникальным для каждой машины. Вместо:

Откройте редактор реестра и перейдите к ключу HKEY_CLASSES_ROOT\.zip\PersistentHandler и скопировать значение в (Default),

Затем перейдите к HKEY_CLASSES_ROOT\.jarдобавить новый ключ PersistentHandlerи вставьте скопированный GUID в (Default) значение.

Затем в проводнике поиск в jar-файлах с работой, используя опцию поиска содержимого файла.

Я всегда использую Far Manager http://www.farmanager.com/, у него есть очень гибкая утилита "найти файл", которая может искать и в архивах.

Другие вопросы по тегам