Обнаружив, что findstr
игнорирует скрытый бит и находит файлы в скрытых папках независимо от этого, я затем использовал for
команду (которая ее уважает), чтобы придумать следующее, изложенное для командного файла: -
@echo off pushd %userprofile% for /r %%f in (*.txt) do echo %%f | findstr "\Temporary" >NUL: || findstr /i /p mail "%%f" nul: popd
Заметки:-
- Мне не удалось заставить
for /r
работать, когда я добавляю путь к каталогу внутри совпадения файла, следовательно использованиеpushd
/popd
. - Первый
findstr
ищет\Temporary
(это можно уточнить) в пути к файлу и выполняет второй,findstr
только если он не найден. - Дополнительный
nul:
параметр второгоfindstr
гарантирует, что имя файла будет напечатано с найденной строкой: обычно он пропускается, когда передается только один файл (может быть другой способ сделать это, но я не часто использую эту команду). - Если вы делаете это часто, вы можете рассмотреть вопрос о перемещении интернет-кэша в другой каталог за пределами профиля пользователя.
Я проверял это решение, когда комментарий Дэвида Постила появился выше. Я только что заметил это, но я все равно отправлю свой ответ, так как он добавляет пару моментов, которые необходимо учитывать при любом решении.