Windows 资源管理器使用子字符串搜索文件名

Windows 资源管理器使用子字符串搜索文件名

有史以来最令人费解的功能设计

我尝试在目录中搜索日期为的文件xxx.01.22.xxx。我尝试过 name:01.22name:*.01.22.*,但都没有找到。(我自己检查后发现该文件在那里。)

此搜索的正确语法是什么?哪些特殊字符会搞乱 Windows 文件名搜索?(顺便说一句,我想我从来都无法通过数字搜索文件名……)

自从 Windows 10 推出以来,我一直在努力使用 Windows 资源管理器搜索框,即使是简单的文件名搜索,我也从未能够有效地使用它。有没有关于如何使用此功能的好课程?

答案1

星号 * 是 Windows 文件名的通配符。只要 01.22 确实在文件名中(而不是文件日期元数据中),只需在两边使用一个星号即可:

*01.22*

这将搜索文件名中包含“01.22”的任何文件。您不需要“name:”前缀。

但是,如果您想根据修改日期元数据搜索文件,请使用以下字符串格式:

修改时间:2021/01/22 .. 2021/01/23

“modified:start_date .. end_date”。日期格式可能因您的 Windows 配置为哪个国家/地区而异。我的是 en-US。

根据您上传的图片,还有一条评论需要补充,无论您从哪里开始搜索,它都会在该位置及其子文件夹中进行搜索,但不会在其他位置进行搜索。如果您在桌面上搜索,它只会搜索桌面位置。如果您想搜索整个驱动​​器,您可以从根目录(例如 c:\)开始,但这可能需要一些时间,具体取决于根目录上的文件数量和访问速度。最好从您知道包含您要查找的文件的文件夹开始,即使该文件位于子文件夹中。

答案2

使用 PowerShell,您可以在一行中完成此操作,首先打开 PowerShell:

Win+ R>>输入 powershell>>Enter

使用类似以下代码,使用时替换路径和日期:

Get-ChildItem -Path 'path\to\folder' -Force -Recurse | where {$_.LastWriteTime -ge [datetime]"2021-01-22 00:00" -and $_.LastWriteTime -le [datetime]"2021-01-23 00:00"}

这应该能给你你想要的东西。

答案3

感谢@Seven 的完美回答。它在回复部分,所以我无法将其选为答案。在此引用

名称:~=01.22作品 参考:https://answers.microsoft.com/en-us/windows/forum/windows_10-win_cortana/searching-for-a-string-within-a-filename-in-file/3cd4f5a6-cf33-4323-93b8-eb0d3904770f

相关内容