我有一行如下所示的代码,它将所有直接目录名称加载到变量 A 中,然后继续执行循环的其余部分。
for /d %%A in (*) do
我如何才能改变它,以便它跳过预定义的 IgnoreList 中的项目?例如:
IgnoreList:项目 1、项目 2、项目 3...请注意,有些项目会有空格。
答案1
dir /b /ad c:\ |findstr /virxg:exclude.txt
其中exclude.txt
包含要忽略的文件夹,每行一个(可使用findstr
REGEX 的通配符):
Windows
Users
Program.*
Documents.*
如果您想对结果进行某些操作,您的for
循环可能如下所示:
for /f "delims=" %%a in ('dir /b /ad c:\ ^|findstr /virxg:exclude.txt') do @echo %%a
答案2
@echo off
for /D %%i in (c:\*)do echo\%%~fi|findstr /ive /c:\Php /c:\Users /c:%WinDir% /c:"c:\Program Files (x86)"
您也可以使用多个文件执行此操作,而无需其他文件/c:"Strings"
:
/C:string Use string as a literal search string (may include spaces).:
FINDSTR
Search for a text string in a file (or multiple files) unlike the simple FIND
command FINDSTR supports more complex regular expressions.
Syntax
FINDSTR string(s) [pathname(s)]
[/R] [/C:"string"] [/G:StringsFile] [/F:file] [/D:DirList]
[/A:color] [/OFF[LINE]] [options]
Key
string(s) Text to search for, each word a separate search.
pathname(s) The file(s) to search.
/C:string Use string as a literal search string (may include spaces).
options can be any combination of the following switches:
/I Case-insensitive search.
/V Print only lines that do NOT contain a match.