将 Windows 7 搜索结果导出到文本文件

mrb*_*000 16 search windows-7

在 Windows 7 中,有没有办法获取高级查询语法(AQS)返回的文件列表?

这是一个示例查询:

owner:bob type:image
Run Code Online (Sandbox Code Playgroud)

我想要该查询在文本文档中返回的文件列表。我可以从命令行使用 AQS 吗?

and*_*415 15

可能的解决方案

  1. Ctrl+A选择所有结果。
  2. 按住Shift键,然后右键单击列表中的第一项。
  3. 从上下文菜单中选择复制为路径
  4. 将结果粘贴到新的文本文件中。

例如,考虑在C:\Windows\System32文件夹中使用以下查询:

type:image
Run Code Online (Sandbox Code Playgroud)

输出将是这样的:

"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"
Run Code Online (Sandbox Code Playgroud)

已知限制

  • 除非您选择列表中的第一项,否则结果输出将无法正确排序。
  • 所有项目都将用引号括起来。
  • 复制的结果始终包含完整路径。

后期处理

只是一些克服限制的方法。

手动排序

如果需要,您可以使用命令提示符sort中的命令手动对输出进行排序。

示例用法

sort "X:\Path\to\input.txt" /o "X:\Path\to\sorted.txt"
Run Code Online (Sandbox Code Playgroud)

剥离报价

引号可能会妨碍您,但下面的批处理脚本可以为您删除它们。只需将其另存为StripQuotes.cmd(或您喜欢的任何内容,只需保留.cmd扩展名)。该脚本接受两个参数:分别是输入/输出文件。

示例用法

StripQuotes.cmd "X:\Path\to\myfile.txt" /o "X:\Path\to\stripped.txt"
Run Code Online (Sandbox Code Playgroud)

批处理脚本

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

仅检索文件名

如果您不关心完整路径,可以使用下面的批处理脚本。用法与上面的批处理脚本没有任何不同。

批处理脚本

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