Исключить определенные подпапки при сканировании содержимого папки - PullRequest
0 голосов
/ 28 июня 2018

У меня есть пакетный файл, который я использую для сканирования папок c: \ (и их соответствующих подпапок) в окне Windows 7 с использованием цикла for. У меня проблемы с исключением определенных папок, таких как «Пользователи», «Windows», «LocalAppData» и т. Д.

Мне нужно сканировать папки в C: \, чтобы найти определенную именованную папку (например, «myFolder»), не сканируя указанные выше папки, чтобы увеличить время, необходимое для обнаружения нужной папки в папке C :.

КОД:

@echo off

for /d /r "c:\" %%a in (*) do (
    findstr /v "Users" "Windows"
)

1 Ответ

0 голосов
/ 28 июня 2018

Используйте команду dir , чтобы получить пути ко всем разыскиваемым каталогам myFolder, отфильтруйте их с помощью команды findstr , а затем запишите результат с помощью for /F петля , вот так:

for /F "delims=" %%D in ('dir /B /S /A:D "C:\myFolder" ^| findstr /I /V /C:"\\Users\\" /C:"\\Windows\\"') do echo/%%D

Конечно, вы можете указать больше исключений.


Если вы хотите, чтобы исключения находились в текстовом файле C:\exclude.txt:

Users
Windows

Измените подход следующим образом:

for /F "delims=" %%D in ('dir /B /S /A:D "C:\myFolder" ^| findstr /I /V /L /G:"C:\exclude.txt"') do echo/%%D
...