Экспорт результатов поиска Windows 7 в текстовый файл

16

В Windows 7 есть ли способ получить список файлов, возвращаемых расширенным синтаксисом запроса (AQS)?

Вот пример запроса:

owner:bob type:image

Я хочу, чтобы список файлов, возвращаемых по этому запросу в текстовом документе. Могу ли я использовать AQS из командной строки?

mrbinky3000
источник

Ответы:

14

Возможное решение

  1. Нажмите Ctrl+, Aчтобы выбрать все результаты.
  2. Удерживая нажатой Shiftклавишу, щелкните правой кнопкой мыши самый первый элемент в списке.
  3. Выберите « Копировать как путь» из контекстного меню.
  4. Вставьте результаты в новый текстовый файл.

Например, рассмотрите возможность использования следующего запроса в C:\Windows\System32папке:

type:image

Результат будет примерно таким:

"C:\Windows\System32\oobe\background.bmp"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\AppInstalled.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\ClickDownExpanded.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\ClickDownNormal.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\Column.bmp"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\Documents.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\Failure.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\Programs.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\System.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\Users.gif"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\WindowsMail.bmp"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\WindowsMovieMaker.bmp"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\WindowsOutlookExpress.bmp"
"C:\Windows\System32\migwiz\PostMigRes\Web\base_images\WindowsPhotoGallery.bmp"

Известные ограничения

  • Если вы не выберете первый элемент в списке, полученный результат не будет отсортирован должным образом.
  • Все предметы будут заключены в кавычки.
  • Скопированные результаты всегда включают полный путь.

Постобработка

Просто несколько способов преодолеть ограничения.

Ручная сортировка

При необходимости вы можете вручную отсортировать вывод, используя sortкоманду в командной строке .

Пример использования

sort "X:\Path\to\input.txt" /o "X:\Path\to\sorted.txt"

Зачистки цитаты

Кавычки могут мешать, но пакетный скрипт ниже может удалить их для вас. Просто сохраните его как StripQuotes.cmd(или как хотите, просто сохраните .cmdрасширение). Скрипт принимает два параметра: файлы ввода / вывода соответственно.

Пример использования

StripQuotes.cmd "X:\Path\to\myfile.txt" /o "X:\Path\to\stripped.txt"

Пакетный скрипт

@echo off
if "%~2" == "" exit /b 2
type nul>"%~2"
for /f "usebackq delims=" %%G in ("%~1") do echo %%~G>>"%~2"
exit /b

Получение только имен файлов

Если вам не нужен полный путь, вы можете использовать пакетный скрипт ниже. Использование не отличается от пакетного сценария выше.

Пакетный скрипт

@echo off
if "%~2" == "" exit /b 2
type nul>"%~2"
for /f "usebackq delims=" %%G in ("%~1") do echo %%~nxG>>"%~2"
exit /b
and31415
источник
У меня больше нет компьютера с Windows :-( Может кто-нибудь проверить это и уведомить меня, если он работает, чтобы я мог отдать и 31415 баллов за решение?
mrbinky3000
Да, это работает очень хорошо!
Пельмс
3

Вы можете воспользоваться бесплатной и универсальной утилитой NirSoft SysExporter :

Утилита SysExporter позволяет извлекать данные, хранящиеся в стандартных представлениях списков, древовидных представлений, списках, полях со списками, текстовыми полями и элементами управления WebBrowser / HTML, практически из любого приложения, работающего в вашей системе, и экспортировать их в текст, HTML или файл XML.

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

образ

harrymc
источник
Хотя SysExporter отлично работает в Windows XP / Vista, он не поддерживает результаты поиска в Windows 7 (по крайней мере, в версии 1.62).
and31415
@ and31415: я проверил версию 1.62 на Windows 7 перед публикацией, и, похоже, она отлично работает с Explorer. Какой поиск вы сделали, что не сработало?
harrymc
Я попытался type:imageвыполнить тот же запрос, который отправил в своем answer ( ), но в любом другом запросе возникает та же проблема. В основном программа ничего не показывает, просто пустой список.
and31415
@ and31415: Я думаю, что получил - попробуйте просмотреть результат в режиме детализации.
Harrymc
1
Фактически, представление « Детали» - единственное, что позволяет программе отображать фактический список. Причина в том, что Windows 7 использует элемент DirectUIуправления (поддерживается начиная с версии 1.60), а не стандарт ListView. DirectUIУправления использует ListViewобъект внутренне при переключении Подробности точки зрения, и SysExporter способен захватить его содержание. Предыдущие версии Windows просто использовали элемент ListViewуправления, и подойдет любое представление. Чтобы уменьшить беспорядок, вы можете фильтровать только ListViewэлементы в Windows XP / Vista и DirectUIэлементы в Windows 7. Столбцы также можно скрывать / переупорядочивать.
and31415