Самая загадочная функция, когда-либо созданная
Я пытался найти файл в каталоге с датой xxx.01.22.xxx
. Я пробовал name:01.22
или name:*.01.22.*
, но ничего не вышло. (Файл был там после того, как я сам его проверил.)
Какой правильный синтаксис для этого поиска? Какие специальные символы могут испортить поиск имени файла в Windows? (кстати, я думаю, что мне никогда не удавалось найти имя файла по номеру, если подумать...)
Я испытываю трудности с использованием окна поиска Windows Explorer с тех пор, как вышла Windows 10, и мне никогда не удавалось эффективно использовать его даже для простого поиска по имени файла. Есть ли какие-нибудь хорошие курсы по использованию этой функции?
решение1
Звездочка * — это подстановочный знак для имен файлов Windows. Пока 01.22 действительно присутствует в имени файла (а не в метаданных даты файла), просто используйте одну звездочку с обеих сторон:
*01.22*
Это позволит найти любой файл, содержащий "01.22" в любом месте имени файла. Вам не нужен префикс "name:".
Однако если вы хотите выполнить поиск файла на основе метаданных даты изменения, используйте следующий формат строки:
изменено:22.01.2021 ..23.01.2021
"изменено:дата_начала .. дата_конца". Формат даты может быть вариантом культуры в зависимости от того, для какой страны настроен ваш 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/поиск-строки-в-имени-файла-в-файле/3cd4f5a6-cf33-4323-93b8-eb0d3904770f