我的问题与 2011 年提出的问题相同,但没有任何答案:
我希望现在有人可以给出答案......
与使用大于号将命令行命令的结果输出到文本文件类似,我想将 AQS 搜索的结果输出到文件。任何常见的可解析文件格式都可以,例如 CSV 或 TXT。
我的 Win 7 AQS 查询是:“datecreated:4/21/2014 OR datemodified:4/21/2014”,我想在列表文件中输出结果文件的列表。
如果有人有这样的想法,我愿意接受使用脚本语言(例如 Powershell、Python 甚至 BAT 文件)执行此查询的想法。
谢谢!
答案1
可能的解决方案
- 按Ctrl+A选择所有结果。
- 按住Shift键,然后右键单击列表中的第一个项目。
- 选择复制为路径从上下文菜单中。
- 将结果粘贴到新的文本文件中。
例如,考虑在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