我在使用白名单文本文件从整个文件夹中排除某些文件时遇到问题。目前我正在编写脚本编写
for /f "tokens=* Delims=" %%x in (whitelist.txt) do
(
for %%i in ("list\*") do
(
if not "%%i"=="%%x"
(
echo %%i
)
)
)
在这里需要一些指导,谢谢。
答案 0 :(得分:2)
您正在为whitelist.txt中的每一行重复目录
不知道whitelist.txt中的内容,这是问题的近似
在whitelist.txt
one.txt
two.txt
this is data.txt
然后你可以做类似
的事情for /f "tokens=*" %%f in (
'dir /b ^| findstr /v /b /e /i /l /g:whitelist.txt'
) do echo %%f
生成文件列表(和文件夹,如果要排除它们,将/ a-d添加到dir命令)只获取文件名(/b
),并使用findstr
进行过滤。参数是:从whitelist.txt(/g:whitelist.txt
)获取搜索字符串,whitelist.txt的内容是文字字符串(/l
),忽略大小写(/i
),搜索字符串应匹配来自开始(/b
)结束行(/e
),只返回不匹配的行(/v
)。