可能的解决方案

可能的解决方案

我的问题与 2011 年提出的问题相同,但没有任何答案:

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

我希望现在有人可以给出答案......

与使用大于号将命令行命令的结果输出到文本文件类似,我想将 AQS 搜索的结果输出到文件。任何常见的可解析文件格式都可以,例如 CSV 或 TXT。

我的 Win 7 AQS 查询是:“datecreated:4/21/2014 OR datemodified:4/21/2014”,我想在列表文件中输出结果文件的列表。

如果有人有这样的想法,我愿意接受使用脚本语言(例如 Powershell、Python 甚至 BAT 文件)执行此查询的想法。

谢谢!

答案1

可能的解决方案

  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

相关内容