需要使用白名单文本文件从整个文件夹中排除某些文件

时间:2013-12-30 08:19:15

标签: batch-file whitelist

我在使用白名单文本文件从整个文件夹中排除某些文件时遇到问题。目前我正在编写脚本编写

for /f "tokens=* Delims=" %%x in (whitelist.txt) do
(
  for %%i in ("list\*") do 
  (
   if not "%%i"=="%%x" 
   (
   echo %%i
   )
 )
)

在这里需要一些指导,谢谢。

1 个答案:

答案 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)。